首页 > 解决方案 > 如何更改时间选择器的时钟图像

问题描述

我正在设置一个 CustomTimePicker,我需要用任何其他时钟图像或图标更改时间选择器的时钟图像。

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

“他们是否有任何样式或其他东西可以用我的图标或图像将图标交换为时钟”

标签: androidtimepickerandroid-timepicker

解决方案


 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>

推荐阅读