Android倒计时器CountDownTimer的简单使用

时间:2020-11-30 20:33:24

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的简单使用