Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android 中NumberPicker,DatePicker与DatePickerDialog中分割颜色的修改实例代码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

Android 中numberPicker,DatePicker与DatePickerDialog中分割颜色的修改实例代码

前言: 开发中,为了应用整体美观,需要保持控件的色调和主题色保持一致,

例如:numberPicker、DatePicker和DatePickerDialog的分割线颜色

一、numberPicker的分割线颜色

我把对numberPicker分割线颜色的方法写在一个工具类中,便于全局调用代码如下:

@H_696_15@ public static void setnumberPickerDividerColor(Context context,numberPicker numberPicker) { numberPicker picker = numberPicker; Field[] pickerFields = numberPicker.class.getDeclaredFields(); for (Field pf : pickerFields) { if (pf.getName().equals("mSELEctionDivider")) { pf.setAccessible(true); try { //设置分割线的颜色值 pf.set(picker,new ColorDrawable(context.getresources().getColor(R.color.theme_pink))); } catch (IllegalArgumentexception E) { e.printStackTrace(); } catch (resources.NotFoundException E) { e.printStackTrace(); } catch (illegalaccessexception E) { e.printStackTrace(); } break; } } }

二、DatePicker的分割线颜色

查看DataPicker的源码可以看到,DatePacker也是numberPicker实现的,所以主要思想,还是修改numberPicker分割线的颜色,代码如下:

@H_696_15@ public static void setDatePickerDividerColor(Context context,DatePicker datePicker){ // 获取 mSpinners LinearLayout llFirst = (LinearLayout) datePicker.getChildAt(0); // 获取 numberPicker LinearLayout mSpinners = (LinearLayout) llFirst.getChildAt(0); for (int i = 0; i < mSpinners.getChildCount(); i++) { numberPicker picker = (numberPicker) mSpinners.getChildAt(i); Field[] pickerFields = numberPicker.class.getDeclaredFields(); for (Field pf : pickerFields) { if (pf.getName().equals("mSELEctionDivider")) { pf.setAccessible(true); try { pf.set(picker,new ColorDrawable(context.getresources().getColor(R.color.theme_pink))); } catch (IllegalArgumentexception E) { e.printStackTrace(); } catch (resources.NotFoundException E) { e.printStackTrace(); } catch (illegalaccessexception E) { e.printStackTrace(); } break; } } } }

二、DatePickerDialog的分割线颜色

实现思路:拿到Dialog中DatePicker就可以改变分割先的颜色,主要代码如下:

@H_696_15@ DatePickerDialog datePickerDialog = new DatePickerDialog(mContext,listener,year,month,day); datePickerDialog.settitle("选择年月"); datePickerDialog.show(); DatePicker datePicker = datePickerDialog.getDatePickerStart(); //获取DatePicker CommonUtil.setDatePickerDividerColor(mContext,datePicker); //设置分割线颜色 /*修改按钮颜色这个必须在show或者create方法后面*/ Button commitBtn = datePickerDialog.getButton(DialogInterface.bUTTON_POSITIVE); //确认按钮 commitBtn.setTextColor(Color.parseColor("#e8615e"));

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持

大佬总结

以上是大佬教程为你收集整理的Android 中NumberPicker,DatePicker与DatePickerDialog中分割颜色的修改实例代码全部内容,希望文章能够帮你解决Android 中NumberPicker,DatePicker与DatePickerDialog中分割颜色的修改实例代码所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: