6

Datepicker と Timepicker にカスタム スキンを使用したいと考えています。XML で背景を変更してもうまくいきません (各ボタンではなく、セットの背景が変更されます)。API は非常に短く、外観については何もありません ( http://developer.android.com/reference/android/widget/DatePicker.html )。Datepickers と Timepickers のボタンにカスタム スキンを使用することはできますか?

4

5 に答える 5

12

わかりました、日付ピッカーと時間ピッカーのカスタムテーマを探しています..これにより、ボタンのテーマを変更できます..

https://github.com/luminousman/DatePicker

そしてICSスタイルで

https://github.com/luminousman/android-datepicker

これがあなたを助けることを願っています....

于 2012-01-07T14:37:37.767 に答える
4

残念ながら、numberpicker は内部ウィジェットです。これらの背景をオーバーライドする必要があります。そして、それを行う公式の方法はありません。

res/layout/number_picker.xml

<NumberPickerButton android:id="@+id/increment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/timepicker_up_btn" />

<EditText android:id="@+id/timepicker_input"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:singleLine="true"
    style="?android:attr/textAppearanceLargeInverse"
    android:textColor="@android:color/primary_text_light"
    android:textSize="30sp"
    android:background="@drawable/timepicker_input" />

<NumberPickerButton android:id="@+id/decrement"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/timepicker_down_btn" />

于 2010-10-08T15:05:50.827 に答える
3

これは安全ではありませんが、クラス全体をコピーせずにタイムピッカーをスキンする唯一の方法だと思います:

try { for (int i=0; i<2; i++)
{
    ((ViewGroup) ((ViewGroup) mTimePicker.getChildAt(0)).getChildAt(i)).getChildAt(0).setBackgroundResource(R.drawable.timepicker_up_btn);
    ((ViewGroup) ((ViewGroup) mTimePicker.getChildAt(0)).getChildAt(i)).getChildAt(1).setBackgroundResource(R.drawable.timepicker_input);
    ((ViewGroup) ((ViewGroup) mTimePicker.getChildAt(0)).getChildAt(i)).getChildAt(2).setBackgroundResource(R.drawable.timepicker_down_btn);
}
} catch (Throwable t) {/* obviously no the view may look like garbage */}

明らかに、参照されたドローアブルをアプリで提供する必要があります

于 2011-05-16T11:58:43.443 に答える