Android倒计时器CountDownTimer的简单使用

时间:2022-06-08 22:02:17

private TimeCount   time;

 time = new TimeCount(60000, 1000);


class TimeCount extends CountDownTimer{


        public TimeCount(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }


        @Override
        public void onTick(long millisUntilFinished) {
            btnCode.setBackgroundResource(R.drawable.register_btn_code_huibg);
            btnCode.setClickable(false);
            btnCode.setText(millisUntilFinished/ 1000+"秒后重新发送");
        }


        @Override
        public void onFinish() {
            btnCode.setText("重新获取验证码");
            btnCode.setClickable(true);
            btnCode.setBackgroundResource(R.drawable.register_btn_code_bg);




        }
    }


time.start();



R.drawable.register_btn_code_huibg:


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="#B6B6D8" />
            <corners  android:radius="8dp"/>
        </shape>
    </item>
</layer-list>


R.drawable.register_btn_code_bg:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="@color/heading_color" />
            <corners  android:radius="8dp"/>
        </shape>
    </item>


</layer-list>



xml文件:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:layout_marginLeft="10dp"
    android:padding="8dp"
    >
    <ImageView
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_centerVertical="true"
        android:scaleType="centerInside"
        android:src="@drawable/register_phone"
        android:id="@+id/register_iv"
        />
     <Button
        android:layout_width="80dp"
        android:layout_height="30dp"
        android:layout_alignParentRight="true"
        android:text="@string/register_btn_code"
        android:layout_centerVertical="true"
        android:textSize="14sp"
        android:textColor="@color/white"
        android:background="@drawable/register_btn_code_bg"
        style="?android:attr/borderlessButtonStyle"
        android:id="@+id/register_code_btn"
        />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/register_iv"
        android:layout_toLeftOf="@+id/register_code_btn"
        android:layout_centerVertical="true"
        android:background="@null"
        android:hint="@string/login_hint_name"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:textSize="16sp"
        android:singleLine="true"
        android:inputType="phone"
        android:gravity="left"
        android:id="@+id/register_et_name"
        /> </RelativeLayout>


效果图:

Android倒计时器CountDownTimer的简单使用