Android 中NumberPicker,DatePicker与DatePickerDialog中分割颜色的修改实例代码
Android中NumberPicker,DatePicker与DatePickerDialog中分割颜色的修改实例代码
前言:开发中,为了应用整体美观,需要保持控件的色调和主题色保持一致,
例如:NumberPicker、DatePicker和DatePickerDialog的分割线颜色
一、NumberPicker的分割线颜色
我把对NumberPicker分割线颜色的方法写在一个工具类中,便于全局调用,代码如下:
publicstaticvoidsetNumberPickerDividerColor(Contextcontext,NumberPickernumberPicker){
NumberPickerpicker=numberPicker;
Field[]pickerFields=NumberPicker.class.getDeclaredFields();
for(Fieldpf:pickerFields){
if(pf.getName().equals("mSelectionDivider")){
pf.setAccessible(true);
try{
//设置分割线的颜色值
pf.set(picker,newColorDrawable(context.getResources().getColor(R.color.theme_pink)));
}catch(IllegalArgumentExceptione){
e.printStackTrace();
}catch(Resources.NotFoundExceptione){
e.printStackTrace();
}catch(IllegalAccessExceptione){
e.printStackTrace();
}
break;
}
}
}
二、DatePicker的分割线颜色
查看DataPicker的源码可以看到,DatePacker也是NumberPicker实现的,所以主要思想,还是修改NumberPicker分割线的颜色,代码如下:
publicstaticvoidsetDatePickerDividerColor(Contextcontext,DatePickerdatePicker){
//获取mSpinners
LinearLayoutllFirst=(LinearLayout)datePicker.getChildAt(0);
//获取NumberPicker
LinearLayoutmSpinners=(LinearLayout)llFirst.getChildAt(0);
for(inti=0;i
二、DatePickerDialog的分割线颜色
实现思路:拿到Dialog中DatePicker就可以改变分割先的颜色,主要代码如下:
DatePickerDialogdatePickerDialog=
newDatePickerDialog(mContext,0,listener,year,month,day);
datePickerDialog.setTitle("选择年月");
datePickerDialog.show();
DatePickerdatePicker=datePickerDialog.getDatePickerStart();//获取DatePicker
CommonUtil.setDatePickerDividerColor(mContext,datePicker);//设置分割线颜色
/*修改按钮颜色这个必须在show或者create方法后面*/
ButtoncommitBtn=datePickerDialog.getButton(DialogInterface.BUTTON_POSITIVE);//确认按钮
commitBtn.setTextColor(Color.parseColor("#e8615e"));
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!