0

我的观点有一个白色的背景,它必须保持这种状态。我在那个白色背景上有一个 TimePicker。android 2.3.3 一切正常,但 android 4.0.3 有一个新的 timePicker 样式。数字有一个非常明亮的颜色。在白色背景上很难看到它们,而且我没有找到直接更改 textColor 的方法。我不想改变背景,因为它看起来不太好。

有没有办法覆盖它并将数字的颜色设置为黑色?

真诚的,沃尔芬

4

2 回答 2

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;

}

于 2015-02-09T09:24:04.957 回答
0

看看styles.xml的android源码

https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml

然后,您在活动/时间选择器上设置样式,看起来您可以执行以下操作:

<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" />
于 2012-06-10T14:41:51.933 回答