как изменить изображение часов - PullRequest
0 голосов
/ 18 июня 2019

Я настраиваю CustomTimePicker, и мне нужно изменить изображение часов с помощью любого другого изображения или значка часов.

    <TimePicker
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:timePickerMode="clock"
        /> 

«Есть ли у них какой-нибудь стиль или что-то еще, чтобы поменять иконку на часы с моей иконкой или изображением»

Ответы [ 2 ]

0 голосов
/ 20 июня 2019
 validTillTime.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            KeyboardUtility.hideKeyboard(CreatePassActivityTwo.this);
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                TimePickerUtility.getTime(CreatePassActivityTwo.this).show();
                validFrom = 0;
                return false;
            }
            return true;

validTillTime является здесь EditText.

public class TimePickerUtility {

public static TimePickerDialog getTime(final Context context) {

    Calendar calendar = Calendar.getInstance();
    int hour = calendar.get(Calendar.HOUR_OF_DAY);
    int minute = calendar.get(Calendar.MINUTE);

    TimePickerDialog.OnTimeSetListener timeSetListener =
            new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

                    TimePickerListener timePickerListener = (TimePickerListener) context;
                    timePickerListener.onReceiveTime(hourOfDay, minute);
                }
            };

    return new TimePickerDialog(context,
            R.style.TimePickerTheme, timeSetListener, hour, minute, false);
}

public interface TimePickerListener {

    void onReceiveTime(int hour, int minute);
}

внедрите TimePickerListener в свою деятельность.

 @Override
public void onReceiveTime(int hour, int minute) {
    if (validFrom == 1) {
        validFromTime.setText(TimeFormatterUtility.getFormattedTime(hour, minute));
    } else {
        validTillTime.setText(TimeFormatterUtility.getFormattedTime(hour, minute));
    }
}

 <style name="TimePickerTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorAccent">@color/buttonColor</item>
    <item name="android:timePickerStyle">@style/TimePickerStyle</item>
</style>

<style name="TimePickerStyle" parent="@android:style/Widget.Material.Light.TimePicker">

    <item name="android:headerBackground">@color/colorPrimary</item>
    <item name="android:timePickerMode">spinner</item>
    <item name="android:headerTimeTextAppearance">@color/colorPrimaryDark</item>
</style>
0 голосов
/ 18 июня 2019

В Timepicker есть важный атрибут:

 android:timePickerMode="spinner" or "clock"

и для задания цвета фона используйте тему:

android:theme="@style/TimePickerTheme"
...