NumberPicker是Android3.0之后引入的一個控件,在以后的TimePicker和DatePicker時間控件里邊都有引用,NumberPicker本身並沒有提供接口給開發者修改其默認外觀,這里延續前篇博客的內容(調整TimePicker,DatePicker的大小、樣式),提供一個修改NumberPicker默認外觀(主要是修改字體大小,顏色)的方法。如果你是使用Android3.0以后的版本,而且你只需要修改NumberPicker的字體,那這是最偷懶的方法。效果還是先上圖。
左邊紅色方框里邊是一個NumberPicker控件,修改了它的字體和顏色。
實現的方法是使用CustomNumberPicker繼承NumberPicker控件,在其子控件EditText加載時修改其屬性,詳細如下:
public class CustomNumberPicker extends NumberPicker { public CustomNumberPicker(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void addView(View child) { super.addView(child); updateView(child); } @Override public void addView(View child, int index, android.view.ViewGroup.LayoutParams params) { super.addView(child, index, params); updateView(child); } @Override public void addView(View child, android.view.ViewGroup.LayoutParams params) { super.addView(child, params); updateView(child); } public void updateView(View view) { if (view instanceof EditText) { //這里修改字體的屬性 ((EditText) view).setTextSize(12); ((EditText) view).setTextColor(Color.RED); } } }
然后再xml文件使用CustomNumberPicker替換NumberPicker就可以了。
但是大部分的應用需要支持Android3.0以前的版本,這個時候你就需要自己寫NumberPicker控件了,幸運的是這部分工作,已經有人替你做了,你只需要拿來主義就好了。
來自於GitHub的NumberPicker控件,點擊下載后就可以使用。它是根據Android的源碼編寫,結合library使用,而達到后向兼容Android版本的。由於自己沒有使用過,所以不在多寫,有需要的同學可以下載使用。