2012-06-10 35 views
0

我的视图有白色背景,必须保持原样。 我有一个TimePicker在那个白色background.Everything是很好的与android 2.3.3,但android 4.0.3有一个新的timePicker风格。数字有一个非常明亮的颜色。在白色背景下很难看到它们,我没有找到改变textColor的直接方法。我不想改变背景,因为它看起来不太好。如何覆盖TimePicker以更改文字颜色

有什么办法可以覆盖这个,并将数字的颜色设置为黑色?

诚恳, 沃尔芬

回答

0

看看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" /> 
+0

您好,感谢布伦德尔。我可以在商业项目中使用它吗? – Wolfen

+0

@Wolfen是的,你为什么会认为你不能? – Blundell

+1

好吧,我已将此添加到我的styles.xml:<! - 全球主题样式 - > <吃评论/> <样式名称= “Widget.TimePicker”> <项目名称=“机器人:布局 “> @机器人:布局/ time_picker <样式名称=” Widget.Holo.TimePicker”父= “Widget.TimePicker”> <项名称= “机器人:布局”> @机器人:布局/ time_picker_holo <样式名称= “Widget.Holo.Light.TimePicker” 父= “Widget.Holo.TimePicker”> 错误:检索项目的父项时出错:找不到与给定名称匹配的资源'小工具' – Wolfen

0

使用此功能

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; 

}