1. 程式人生 > >經驗分享一 自定義ArrayAdapter中的字型

經驗分享一 自定義ArrayAdapter中的字型

最近一直忙於做安卓專案,好長時間沒寫部落格了,

就把最近我遇到的問題和把問題解決的思路寫出來,

供大家分享吧,有些經驗需要當自己真正遇到時,才能真正體會的。

前些天為個人做的一個小軟體,需要讓介面更加的美化一些,

所以就需要將介面卡中的字型給改變,但是網上各種搜,

就是沒能解決問題,最後還是在討論群中,經一位大神的提醒,

我最終還是解決了。具體看下面的程式碼:

首先是過載ArrayAdapter這個類,並重寫其中的getVeiw()方法,詳細程式碼如下:

package lxx.dadangpic;

import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class MyArrayAdater extends ArrayAdapter<String>{

	private TextView  t;
	private Context Maincontext;
	public MyArrayAdater(Context context, int textViewResourceId,String[] aStrings) {
		super(context, textViewResourceId,aStrings);
		Maincontext = context;
		// TODO Auto-generated constructor stub
	}
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		Typeface typeface = Typeface.createFromAsset(Maincontext.getAssets(), "fonts/huawenxingkai.ttf");
		
		for(int i = 0; i < parent.getChildCount(); i++){
			View view = parent.getChildAt(i);
			if (view instanceof TextView) {
				//System.out.println("come here!");
				((TextView) view).setTypeface(typeface);
				
			}
		}
		return super.getView(position, convertView, parent);
	}
}


其中的for迴圈是個重點,意思是將ViewGroup的所有的view全部設定一下字型,至於還有就是講自定義的字型庫放到assets下的fonts目錄下,沒有的話,要新建。這些簡單的就不說了。我還是不多說了,就把這個簡單的專案共享吧!其中我寫個各種的特效,用於播放圖片的動畫功能,還有加入了背景音樂等功能。整體效果看起來還是蠻不錯的。