1

Тема: кастомізація TimePicker

Добрий вечір, панове! Під android пишу програму в якій присутні DatePicker та TimePicker в вигляді скроллерів. Є потреба їх підігнати під загальний дизайн всієї програми, а по суті всого лиш поміняти колір горизонтальних розділювачів. Довго розпитував в дядька Гугла і знайшов нормальний наче спосіб, але ним можу поміняти кольори в NumberPicker-ах з яких і складаються DatePicker та TimePicker. Ось і запитання: хтось знає як добратися до скроллера AM/PM що наприкінці TimePicker та змінити стилі і в нього? Що це за об'єкт і який в нього id буде? Пишу в Android Studio, а методи за допомогою яких мені вдалося поміняти стилі DatePicker та TimePicker ось (може комусь знадобиться):

private void colorizeDatePicker(DatePicker datePicker) {
        Resources system = Resources.getSystem();
        int dayId = system.getIdentifier("day", "id", "android");
        int monthId = system.getIdentifier("month", "id", "android");
        int yearId = system.getIdentifier("year", "id", "android");

        NumberPicker dayPicker = (NumberPicker) datePicker.findViewById(dayId);
        NumberPicker monthPicker = (NumberPicker) datePicker.findViewById(monthId);
        NumberPicker yearPicker = (NumberPicker) datePicker.findViewById(yearId);

        setDividerColor(dayPicker);
        setDividerColor(monthPicker);
        setDividerColor(yearPicker);
    }


    private void colorizeTimePicker(TimePicker timePicker) {
        Resources system = Resources.getSystem();
        int hourId = system.getIdentifier("hour", "id", "android");
        int minuteId = system.getIdentifier("minute", "id", "android");

        NumberPicker hourPicker = (NumberPicker) timePicker.findViewById(hourId);
        NumberPicker minutePicker = (NumberPicker) timePicker.findViewById(minuteId);

        setDividerColor(hourPicker);
        setDividerColor(minutePicker);
    }

    private static void setDividerColor(NumberPicker picker) {
        if (picker == null)
            return;

        final int count = picker.getChildCount();
        for (int i = 0; i < count; i++) {
            try {
                Field dividerField = picker.getClass().getDeclaredField("mSelectionDivider");
                dividerField.setAccessible(true);
                ColorDrawable colorDrawable = new ColorDrawable(picker.getResources().getColor(R.color.colorAccent));
                dividerField.set(picker, colorDrawable);
                picker.invalidate();
            } catch (Exception e) {
                Log.w("setDividerColor", e);
            }
        }
    }

Наперед дякую за допомогу чи спробу допомогти.

2

Re: кастомізація TimePicker

Щойно зрозумів, що трохи не туди написав. Надіюсь це не проблема