最近一个项目需要用到TimePicker控件,但是颜色字体都不一样,显示字体需要显示数码,找度娘都没有找到比较合适的,自己通反射实现
具体代码:
Class<?> aClass=dalb.timePick.getClass();
try {
Method methodAmView=aClass.getDeclaredMethod("getAmView",null);
Method methodPmView=aClass.getDeclaredMethod("getPmView",null);
Method methodHourView=aClass.getDeclaredMethod("getHourView",null);
Method methodMinuteView=aClass.getDeclaredMethod("getMinuteView",null);
methodAmView.setAccessible(true);
methodPmView.setAccessible(true);
methodHourView.setAccessible(true);
methodMinuteView.setAccessible(true);
Object AmView=methodAmView.invoke(dalb.timePick,null);
Object PmView=methodPmView.invoke(dalb.timePick,null);
Object HourView=methodHourView.invoke(dalb.timePick,null);
Object MinuteView=methodMinuteView.invoke(dalb.timePick,null);
if(AmView instanceof RadioButton){
((RadioButton) AmView).setTextSize(14);
((RadioButton) AmView).setTextColor(Color.BLUE);
}
if(PmView instanceof RadioButton){
((RadioButton)PmView).setTextSize(14);
((RadioButton) PmView).setTextColor(Color.BLUE);
}
if(HourView instanceof TextView){
((TextView)HourView).setTypeface(Typeface.MONOSPACE);
((TextView) HourView).setTextColor(Color.BLUE);
}
if(MinuteView instanceof TextView){
((TextView)MinuteView).setTypeface(Typeface.MONOSPACE);
((TextView) MinuteView).setTextColor(Color.BLUE);
}
}catch (Exception e){
e.printStackTrace();
}
timePick为timePick控件。
自定义字体就不贅述了,不知道自行百度。