Android开发之获取短信验证码后按钮背景变化并且出现倒计时
作者:mrr 发布时间:2022-12-21 10:09:40
标签:android,短信,验证码,倒计时
目前越来越多的app在注册或是进行对应操作时,要求获取短信验证码,在点击了获取短信验证码的按钮后,就是出现倒计时,比如倒计时120S,在倒计时期间内,按钮背景变化并且出现倒计时,当倒计时结束后,如果你没有获取到验证码,可以再次点击。
代码如下所示:
VerCodeTimer mVerCodeTimer=(Button) findViewById(R.id.login_get_ver_code);
private class VerCodeTimer extends CountDownTimer {
private int seconds;
private int interval;
//millisInFuture为你设置的此次倒计时的总时长,比如60秒就设置为60000
//countDownInterval为你设置的时间间隔,比如一般为1秒,根据需要自定义。
public VerCodeTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
seconds = (int) (millisInFuture / 1000);
interval= (int) (countDownInterval/1000);
}
//每过你规定的时间间隔做的操作
@Override
public void onTick(long millisUntilFinished) {
getVerCodeButton.setText((seconds-interval) + "秒后重新获取");
}
//倒计时结束时做的操作↓↓
@Override
public void onFinish() {
getVerCodeButton.setTextSize(10);
getVerCodeButton.setText("重新获取验证码");
getVerCodeButton.setClickable(true);
getVerCodeButton.setBackgroundResource(R.drawable.login_get_ver_code_before_bg);
}
}
@Override
public void onBackPressed() {
if (mVerCodeTimer != null)
mVerCodeTimer.cancel();
super.onBackPressed();
}
使用的时候:
getVerCodeButton.setTextSize(11);
getVerCodeButton.setClickable(false);
getVerCodeButton.setBackgroundResource(R.drawable.login_get_ver_code_ago_bg);
mVerCodeTimer = new VerCodeTimer(60000, 1000);
mVerCodeTimer.start();
login_edit_normal_bg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:useLevel="false">
<!-- 背景填充颜色值 -->
<solid android:color="#6c948b" />
<!-- radius值越大,越趋于圆形 -->
<corners android:radius="10dip" />
<!-- 圆角图像内部填充四周的大小 ,将会以此挤压内部布置的view -->
<padding
android:bottom="10dip"
android:left="10dip"
android:right="10dip"
android:top="10dip" />
</shape>
login_edit_passed_bg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:useLevel="false">
<!-- 背景填充颜色值 -->
<solid android:color="#509989" />
<!-- radius值越大,越趋于圆形 -->
<corners android:radius="10dip" />
<!-- 圆角图像内部填充四周的大小 ,将会以此挤压内部布置的view -->
<padding
android:bottom="10dip"
android:left="10dip"
android:right="10dip"
android:top="10dip" />
</shape>
以上所述是小编给大家介绍了Android开发之获取短信验证码后按钮背景变化并且出现倒计时 的全部代码,希望本段代码能够帮助大家。同时感谢大家一直以来对脚本之家网站的支持。


猜你喜欢
- Java栈之链式栈存储结构实现一、链栈采用单链表来保存栈中所有元素,这种链式结构的栈称为链栈。二、栈的链式存储结构实现package com
- 今天遇到pom中添加dependency时相关的jar会自动下载,但是左边的External Libraries中一直获取不到添加的jar问
- 在项目中经常要用到将字符串解析成Locale,但是没有一个比较好用的类。java本身提供了3个构造函数,但是实际使用过程中,需要自己解析,比
- 错误处理到目前为止,我们都没怎么介绍onComplete()和onError()函数。这两个函数用来通知订阅者,被观察的对象将停止发送数据以
- 我们通过一个完整的实例来实现课程信息管理功能的操作,包括查询、修改、删除课程信息的操作。为了简化实例,添加课程信息的操作直接在 SQL Se
- 一个简单的红包生成算法,代码如下:/** * 红包 * @param n * @param money 单位:分 * @return **/
- 本文实例为大家分享了java实现图片反色处理的具体代码,供大家参考,具体内容如下效果对比原图反色处理原图反色处理核心代码实现import j
- 问题提出:自己在做一个小网站充当练手,但是前端图片经过base64加密后传往后端在解码。但是一直都有问题,请大神赐教 publi
- 今天在APP中增加一个添加项目的功能,项目的主键为整数,要让它自增长。既然要自增长,那么在代码里面就不用给id字段赋值。但是调试的时候发现不
- 本文实例为大家分享了Android端实现文件上传的具体代码,供大家参考,具体内容如下1)、新建一个Android项目命名为androidUp
- java -version 命令大家都用过,大部分就是看下jdk版本或检查下环境变量的设置,但最后一行的信息也挺重要,如下图所示:Serve
- Strut2判断是否是AJAX调用1. AJAX与传统Form表单实际上,两者一般都是通过HTTP的POST请求。区
- java8分组计算数量和计算总数package com.pig4cloud.pigx.admin.api.vo;import lombok.
- Spring Boot读取配置文件1)通过注入ApplicationContext 或者 Environment对象来读取配置文件里的配置信
- 前言我们在项目的开发中,难免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护
- 前言在日常编码中,有了ide的支持,我们已经很少直接在命令行中直接执行java XXX命令去启动一个项目了。然而我们有没有想过,一个简单的j
- 一、简述效果:实现功能:长按Button时改变Button显示文字,弹出Dialog(动态更新音量),动态生成录音文件,开始录音;监听手指动
- 具体代码如下所示:private string GetWeekName(DayOfWeek week) { &nb
- 现在再回过头理解,结合自己的体会, 选用最佳的方式描述这些算法,以方便理解它们的工作原理和程序设计技巧。本文适合做java面试准备的材料阅读
- 1、目录结构Application属性文件,按优先级排序,位置高的将覆盖位置当前项目目录下的一个/config子目录当前项目目录项目的res