• 大小: 72KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Java
  • 标签: 倒计时  

资源简介

Android获取短信验证码倒计时按钮的实现,在注册页面中经常使用。

资源截图

代码片段和文件信息

package net.csdn.blog.ruancoder;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.CountDownTimer;
import android.util.AttributeSet;
import android.widget.Button;

/**
 * 带倒计时的按钮
 */
public class CountDownTimerButton extends Button {
    private Drawable mNormalBackground;
    private Drawable mDisableBackground;

    // 总倒计时时间
    private static final long MILLIS_IN_FUTURE = 60 * 1000;
    // 每次减去1秒
    private static final long COUNT_DOWN_INTERVAL = 1000;

    public CountDownTimerButton(Context context) {
        this(context null);
    }

    public CountDownTimerButton(Context context AttributeSet attrs) {
        this(context attrs 0);
    }

    public CountDownTimerButton(Context context AttributeSet attrs int defstyleAttr) {
        super(context attrs defstyleAttr);
        init(context attrs);
    }

    private void init(Context context AttributeSet attrs) {
        TypedArray a = context.obtainstyledAttributes(attrs R.styleable.CountDownTimerButton);
        mNormalBackground = a.getDrawable(R.styleable.CountDownTimerButton_normalBackground);// 默认背景
        mDisableBackground = a.getDrawable(R.styleable.CountDownTimerButton_disableBackground);// 不可点击时的背景
        setBackgroundDrawable(mNormalBackground);
    }

    // 启动倒计时
    public void startCountDown() {
        // 设置按钮为不可点击,并修改显示背景
        setEnabled(false);
        setBackgroundDrawable(mDisableBackground);
        // 开始倒计时
        new CountDownTimer(MILLIS_IN_FUTURE COUNT_DOWN_INTERVAL) {
            @Override
            public void onTick(long millisUntilFinished) {
                // 刷新文字
                setText(getContext().getString(R.string.reget_sms_code_countdown millisUntilFinished / COUNT_DOWN_INTERVAL));
            }

            @Override
            public void onfinish() {
                // 重置文字,并恢复按钮为可点击
                setText(R.string.reget_sms_code);
                setEnabled(true);
                setBackgroundDrawable(mNormalBackground);
            }
        }.start();
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        574  2016-07-09 00:39  CountDownTimer\app\build.gradle

     文件        678  2016-07-08 23:32  CountDownTimer\app\proguard-rules.pro

     文件        650  2016-07-09 00:36  CountDownTimer\app\src\main\AndroidManifest.xml

     文件       2314  2016-07-09 00:50  CountDownTimer\app\src\main\java\net\csdn\blog\ruancoder\CountDownTimerButton.java

     文件        698  2016-07-09 00:42  CountDownTimer\app\src\main\java\net\csdn\blog\ruancoder\MainActivity.java

     文件        283  2016-07-09 00:24  CountDownTimer\app\src\main\res\drawable\get_sms_code_btn_selector.xml

     文件        672  2015-12-14 19:29  CountDownTimer\app\src\main\res\drawable-xhdpi\get_sms_code_btn_disable.9.png

     文件        672  2015-12-14 19:29  CountDownTimer\app\src\main\res\drawable-xhdpi\get_sms_code_btn_normal.9.png

     文件        713  2015-12-14 19:29  CountDownTimer\app\src\main\res\drawable-xhdpi\get_sms_code_btn_pressed.9.png

     文件       7718  2016-07-08 23:32  CountDownTimer\app\src\main\res\drawable-xhdpi\ic_launcher.png

     文件       1929  2015-12-14 19:29  CountDownTimer\app\src\main\res\drawable-xhdpi\mobile_icon.png

     文件       1803  2015-12-14 19:29  CountDownTimer\app\src\main\res\drawable-xhdpi\sms_code_icon.png

     文件       3939  2016-07-09 00:44  CountDownTimer\app\src\main\res\layout\activity_main.xml

     文件        279  2016-07-09 00:11  CountDownTimer\app\src\main\res\values\attrs.xml

     文件        214  2016-07-08 23:32  CountDownTimer\app\src\main\res\values\colors.xml

     文件        388  2016-07-09 00:39  CountDownTimer\app\src\main\res\values\strings.xml

     文件        155  2016-07-09 00:36  CountDownTimer\app\src\main\res\values\styles.xml

     文件        521  2016-07-08 23:32  CountDownTimer\build.gradle

     文件      65212  2016-07-09 00:51  CountDownTimer\device.png

     目录          0  2016-07-09 00:52  CountDownTimer\app\src\main\java\net\csdn\blog\ruancoder

     目录          0  2016-07-09 00:52  CountDownTimer\app\src\main\java\net\csdn\blog

     目录          0  2016-07-09 00:52  CountDownTimer\app\src\main\java\net\csdn

     目录          0  2016-07-09 00:52  CountDownTimer\app\src\main\java\net

     目录          0  2016-07-09 00:52  CountDownTimer\app\src\main\res\drawable

     目录          0  2016-07-09 00:52  CountDownTimer\app\src\main\res\drawable-xhdpi

     目录          0  2016-07-09 00:52  CountDownTimer\app\src\main\res\layout

     目录          0  2016-07-09 00:52  CountDownTimer\app\src\main\res\values

     目录          0  2016-07-08 23:41  CountDownTimer\app\src\main\res\values-w820dp

     目录          0  2016-07-09 00:52  CountDownTimer\app\src\main\java

     目录          0  2016-07-09 00:52  CountDownTimer\app\src\main\res

............此处省略8个文件信息

评论

共有 条评论