經驗分享一 自定義ArrayAdapter中的字型
阿新 • • 發佈:2019-01-28
最近一直忙於做安卓專案,好長時間沒寫部落格了,
就把最近我遇到的問題和把問題解決的思路寫出來,
供大家分享吧,有些經驗需要當自己真正遇到時,才能真正體會的。
前些天為個人做的一個小軟體,需要讓介面更加的美化一些,
所以就需要將介面卡中的字型給改變,但是網上各種搜,
就是沒能解決問題,最後還是在討論群中,經一位大神的提醒,
我最終還是解決了。具體看下面的程式碼:
首先是過載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目錄下,沒有的話,要新建。這些簡單的就不說了。我還是不多說了,就把這個簡單的專案共享吧!其中我寫個各種的特效,用於播放圖片的動畫功能,還有加入了背景音樂等功能。整體效果看起來還是蠻不錯的。