我的视图有白色背景,必须保持原样。 我有一个TimePicker在那个白色background.Everything是很好的与android 2.3.3,但android 4.0.3有一个新的timePicker风格。数字有一个非常明亮的颜色。在白色背景下很难看到它们,我没有找到改变textColor的直接方法。我不想改变背景,因为它看起来不太好。如何覆盖TimePicker以更改文字颜色
有什么办法可以覆盖这个,并将数字的颜色设置为黑色?
诚恳, 沃尔芬
我的视图有白色背景,必须保持原样。 我有一个TimePicker在那个白色background.Everything是很好的与android 2.3.3,但android 4.0.3有一个新的timePicker风格。数字有一个非常明亮的颜色。在白色背景下很难看到它们,我没有找到改变textColor的直接方法。我不想改变背景,因为它看起来不太好。如何覆盖TimePicker以更改文字颜色
有什么办法可以覆盖这个,并将数字的颜色设置为黑色?
诚恳, 沃尔芬
看看Android的源styles.xml
https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml
然后,您所设置的样式您的活动/ timepicker它看起来像你可以做类似此:
<style name="MyTimePicker" parent="@android:style/Widget.TimePicker">
<item name="android:textColor">#000000</item>
</style>
或也许(3.0和以上)
<style name="MyHoloTimePicker" parent="@android:style/Widget.Holo.TimePicker">
<item name="android:textColor">#000000</item>
</style>
那么你的XML是:
<TimePicker
style="@style/MyHoloTimePicker"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
使用此功能
public static boolean setNumberPickerTextColor(NumberPicker numberPicker, int color) {
final int count = numberPicker.getChildCount();
for (int i = 0; i < count; i++) {
View child = numberPicker.getChildAt(i);
if (child instanceof EditText) {
try {
Field selectorWheelPaintField =
numberPicker.getClass().getDeclaredField("mSelectorWheelPaint");
selectorWheelPaintField.setAccessible(true);
((Paint) selectorWheelPaintField.get(numberPicker)).setColor(color);
((EditText) child).setTextColor(color);
numberPicker.invalidate();
return true;
} catch (NoSuchFieldException e) {
Log.w("setNumberPickerTextColor", e);
} catch (IllegalAccessException e) {
Log.w("setNumberPickerTextColor", e);
} catch (IllegalArgumentException e) {
Log.w("setNumberPickerTextColor", e);
}
}
}
return false;
}
您好,感谢布伦德尔。我可以在商业项目中使用它吗? – Wolfen
@Wolfen是的,你为什么会认为你不能? – Blundell
好吧,我已将此添加到我的styles.xml:<! - 全球主题样式 - > <吃评论/> <样式名称= “Widget.TimePicker”> <项目名称=“机器人:布局 “> @机器人:布局/ time_picker <样式名称=” Widget.Holo.TimePicker”父= “Widget.TimePicker”> <项名称= “机器人:布局”> @机器人:布局/ time_picker_holo <样式名称= “Widget.Holo.Light.TimePicker” 父= “Widget.Holo.TimePicker”> 错误:检索项目的父项时出错:找不到与给定名称匹配的资源'小工具' –
Wolfen