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 に答える