Как вы используете пользовательские скины Datepicker и Timepicker?

Я хотел бы использовать собственный скин для своих Datepickers и Timepickers. Изменение фона в XML не помогает (он меняет фон на набор, а не на каждую из его кнопок). API мучительно короткий и ничего не говорит о внешнем виде ( http://developer.android.com/reference/android/widget/DatePicker.html ). Можно ли использовать собственный скин для кнопок Datepickers и Timepickers?


person hermy    schedule 06.08.2010    source источник


Ответы (3)


хорошо, вы ищете пользовательскую тему для средства выбора даты и времени.. Это позволит вам изменить тему кнопок..

https://github.com/luminousman/DatePicker

и в стиле ICS

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

Надеюсь, что это поможет вам....

person Bhavesh Hirpara    schedule 07.01.2012

К сожалению, числовой набор — это внутренний виджет. Нужно переопределить эти фоны. И нет официального способа сделать это.

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

person biorbnA    schedule 08.10.2010

Это небезопасно, но я считаю, что это единственный способ скрыть таймпикер без копирования всего класса:

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 */}

очевидно, вы должны предоставить указанные чертежи с вашим приложением

person bernstein    schedule 16.05.2011