android timepicker 设置颜色,android – 更改TimePicker文本颜色

我已经将

Paul Burke’s Answer和

Simon’s Answer组合在一起,成功编辑了TimePicker的文本颜色.

以下是它的完成方式:

TimePicker time_picker; //Instantiated in onCreate()

Resources system;

private void set_timepicker_text_colour(){

system = Resources.getSystem();

int hour_numberpicker_id = system.getIdentifier("hour", "id", "android");

int minute_numberpicker_id = system.getIdentifier("minute", "id", "android");

int ampm_numberpicker_id = system.getIdentifier("amPm", "id", "android");

NumberPicker hour_numberpicker = (NumberPicker) time_picker.findViewById(hour_numberpicker_id);

NumberPicker minute_numberpicker = (NumberPicker) time_picker.findViewById(minute_numberpicker_id);

NumberPicker ampm_numberpicker = (NumberPicker) time_picker.findViewById(ampm_numberpicker_id);

set_numberpicker_text_colour(hour_numberpicker);

set_numberpicker_text_colour(minute_numberpicker);

set_numberpicker_text_colour(ampm_numberpicker);

}

private void set_numberpicker_text_colour(NumberPicker number_picker){

final int count = number_picker.getChildCount();

final int color = getResources().getColor(R.color.text);

for(int i = 0; i < count; i++){

View child = number_picker.getChildAt(i);

try{

Field wheelpaint_field = number_picker.getClass().getDeclaredField("mSelectorWheelPaint");

wheelpaint_field.setAccessible(true);

((Paint)wheelpaint_field.get(number_picker)).setColor(color);

((EditText)child).setTextColor(color);

number_picker.invalidate();

}

catch(NoSuchFieldException e){

Log.w("setNumberPickerTextColor", e);

}

catch(IllegalAccessException e){

Log.w("setNumberPickerTextColor", e);

}

catch(IllegalArgumentException e){

Log.w("setNumberPickerTextColor", e);

}

}

}

请注意,这个答案现在可能已经过时了.我刚刚遇到了一些可能有问题的东西(详情请参阅我的问题).否则你应该按照Vikram的回答.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值