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 set
numberPickerDividerColor(Co
ntext co
ntext,
numberPicker
numberPicker)
{
numberPicker picker =
numberPicker;
Field[] pickerFields =
numberPicker.clas
s.getDeclaredFields(
);
for (Field pf : pickerFields)
{
if (pf.getName().equals("m
SELEctionDivider"))
{
pf.setAccessible
(true);
try
{
//设置分割线的颜色值
pf.set(picker,new ColorDrawable(co
ntext.get
resources().getColor(R.color.theme_pink))
);
} catch (IllegalArgume
ntexception
E) {
e.printStackTrace(
);
} catch (
resource
s.NotFoundException
E) {
e.printStackTrace(
);
} catch (
illegalaccessexception E) {
e.printStackTrace(
);
}
break;
}
}
}
二、DatePicker的分割线颜色
查看DataPicker的源码可以看到,DatePacker也是numberPicker实现的,所以主要思想,还是修改numberPicker分割线的颜色,代码如下:
@H_
696_15@
public static void setDatePickerDividerColor(Co
ntext co
ntext,DatePicker datePicker)
{
//
获取 mSpinners
LinearLayout llFirst = (LinearLayout) datePicker.getChildAt(0
);
//
获取 numberPicker
LinearLayout mSpinners = (LinearLayout) llFirst.getChildAt(0
);
for (int i = 0; i < mSpinner
s.getChildCount(
); i++)
{
numberPicker picker = (
numberPicker) mSpinner
s.getChildAt(i
);
Field[] pickerFields =
numberPicker.clas
s.getDeclaredFields(
);
for (Field pf : pickerFields)
{
if (pf.getName().equals("m
SELEctionDivider"))
{
pf.setAccessible
(true);
try
{
pf.set(picker,new ColorDrawable(co
ntext.get
resources().getColor(R.color.theme_pink))
);
} catch (IllegalArgume
ntexception
E) {
e.printStackTrace(
);
} catch (
resource
s.NotFoundException
E) {
e.printStackTrace(
);
} catch (
illegalaccessexception E) {
e.printStackTrace(
);
}
break;
}
}
}
}
二、DatePickerDialog的分割线颜色
实现思路:拿到Dialog中DatePicker就可以改变分割先的颜色,主要代码如下:
@H_
696_15@
DatePickerDialog datePickerDialog =
new DatePickerDialog(mCo
ntext,listener,year,month,day
);
datePickerDialog.set
title("选择年月"
);
datePickerDialog.show(
);
DatePicker datePicker = datePickerDialog.getDatePickerStart(
); //
获取DatePicker
CommonUti
l.setDatePickerDividerColor(mCo
ntext,datePicker
); //设置分割线颜色
/*
修改按钮颜色这个必须在show或者create
方法后面*/
Button commitBtn = datePickerDialog.getButton(DialogInterface
.bUTTON_POSITIV
E); //确认按钮
commitBtn.setTextColor(Color.parseColor("#e8615e")
);
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
大佬总结
以上是大佬教程为你收集整理的Android 中NumberPicker,DatePicker与DatePickerDialog中分割颜色的修改实例代码全部内容,希望文章能够帮你解决Android 中NumberPicker,DatePicker与DatePickerDialog中分割颜色的修改实例代码所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。