概述
先获取TimePicker中NumberPiker的控件id
Resources systemResources = Resources.getSystem();
int hourNumberPickerId = systemResources.getIdentifier("hour", "id", "android");
int minuteNumberPickerId = systemResources.getIdentifier("minute", "id","android");
int dividerId = Resources.getSystem().getIdentifier("divider", "id", "android"); //中间的冒号
DatePicker把hour、minute改为month、day、year
根据id获取NumberPiker控件和冒号,冒号是个TextView,可以直接设置颜色等属性
NumberPicker endHour = (NumberPicker) timeEnd.findViewById(hourNumberPickerId);
NumberPicker endMinute = (NumberPicker) timeEnd.findViewById(minuteNumberPickerId);
TextView endDivider = timeStart.findViewById(dividerId);
endDivider.setTextColor(getResources().getColor(R.color.white));
通过反射修改NumberPiker中横线的颜色
private void setNumberPickerDivider(NumberPicker numberPicker) {
final int count = numberPicker.getChildCount();
for(int i = 0; i < count; i++){
try{
Field dividerField = numberPicker.getClass().getDeclaredField("mSelectionDivider");
dividerField.setAccessible(true);
ColorDrawable colorDrawable = new ColorDrawable(
ContextCompat.getColor(this, android.R.color.white));
dividerField.set(numberPicker,colorDrawable);
numberPicker.invalidate();
}
catch(NoSuchFieldException | IllegalAccessException | IllegalArgumentException e){
Log.w("setNumberPickerTxtClr", e);
}
}
}
最后
以上就是孝顺茉莉为你收集整理的修改Android控件TimePicker分割线和中间冒号的颜色的全部内容,希望文章能够帮你解决修改Android控件TimePicker分割线和中间冒号的颜色所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复