我如何可以覆盖TimePicker改变文字颜色(How can I override TimePic

2019-06-25 09:51发布

我的观点有一个白色的背景,它必须保持下去。 我有白background.Everything一个TimePicker沃金是细跟的Android 2.3.3但是Android 4.0.3有一个新的timePicker风格。 这些数字有一个很亮的颜色。 这是很难看到他们的白色背景,而我没有找到一个直接的方式来改变文字颜色。 我不想改变背景,因为它看起来不那么好。

有什么办法来覆盖这一点,并设定数字为黑色的颜色?

诚恳,沃尔芬

Answer 1:

看看为styles.xml的android源码

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" />


Answer 2:

使用此功能

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;

}



文章来源: How can I override TimePicker to change text color