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"));感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!