Android实现点击获取验证码60秒后重新获取功能
作者:Xia_焱 发布时间:2021-09-21 22:42:01
标签:Android,验证码
本文实例为大家分享了Android实现点击获取验证码60秒后重新获取的具体代码,供大家参考,具体内容如下
上代码
/**
* Created by Xia_焱 on 2017/5/7.
*/
public class CountDownTimerUtils extends CountDownTimer {
private TextView mTextView;
/**
* @param millisInFuture The number of millis in the future from the call
* to {@link #start()} until the countdown is done and {@link #onFinish()}
* is called.
* @param countDownInterval The interval along the way to receive
* {@link #onTick(long)} callbacks.
*/
public CountDownTimerUtils(TextView textView, long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
this.mTextView = textView;
}
@Override
public void onTick(long millisUntilFinished) {
mTextView.setClickable(false); //设置不可点击
mTextView.setText(millisUntilFinished / 1000 + "秒后可重新发送"); //设置倒计时时间
mTextView.setBackgroundResource(R.drawable.bg_identify_code_press); //设置按钮为灰
SpannableString spannableString = new SpannableString(mTextView.getText().toString());
ForegroundColorSpan span = new ForegroundColorSpan(Color.RED);
spannableString.setSpan(span, 0, 2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTextView.setText(spannableString);
}
@Override
public void onFinish() {
mTextView.setText("重新获取验证码");
mTextView.setClickable(true);//重新获得点击
mTextView.setBackgroundResource(R.drawable.bg_identify_code_normal);
}
}
TextView背景色
bg_identify_code_press
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#C0C0C0" /> <!--填充色 透明-->
<corners android:radius="7dp" /> <!-- 圆角 -->
</shape>
bg_identify_code_normal
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#2BAF2B" /> <!--填充色 透明-->
<corners android:radius="7dp" /> <!-- 圆角 -->
</shape>
布局代码
<TextView
android:id="@+id/tv_yzm"
android:layout_width="match_parent"
android:layout_marginTop="50dp"
android:layout_height="45dp"
android:background="@drawable/bg_identify_code_normal"
android:gravity="center"
android:text="点击获取验证码"
android:textColor="#FFF"
android:textSize="15dp" />
项目代码
private void initView() {
tv_yzm = (TextView) findViewById(R.id.tv_yzm);
tv_yzm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CountDownTimerUtils mCountDownTimerUtils = new CountDownTimerUtils(tv_yzm, 60000, 1000);
mCountDownTimerUtils.start();
}
});
}
效果图
来源:https://blog.csdn.net/MacaoPark/article/details/71379520


猜你喜欢
- selectById方法根据id,查询记录public void updateRecycleAssayBusinessItemCharge(
- 一、实现方式@ConfigurationProperties 注解(最好加上前缀prefix=“person”,标明是和配置文件中哪个开头的
- XuLIeHua类库using System;using System.Collections; using System.Co
- 本文实例讲述了Android编程自定义组件。分享给大家供大家参考,具体如下:在Android中,所有的UI界面都是由View类和ViewGr
- 委托这个东西不是很好理解,可是工作中又经常用到,你随处可以看到它的身影,真让人有一种又爱又恨的感觉,我相信许多人被它所困扰过。一提到委托,如
- 前言我们知道在 Java 中读取一些配置文件信息,是在开发中十分常用的要求。例如:这里我们使用 JDBC 实例:连接My
- 多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用
- 今天继续讲解Fragment组件的特性,主要是跟Activity的交互和生命周期的关系,我们前面已经说过Fragment是依赖于Activi
- 编写上位机与下位机通信的时候,涉及到协议的转换,比较多会使用到二进制。传统的方法,是将数据整体获取到byte数组中,然后逐字节对数据进行解析
- 一般来说, 泛型的作用就类似一个占位符, 或者说是一个参数, 可以让我们把类型像参数一样进行传递, 尽可能地复用代码。我有个朋友, 在使用的
- 一 . 高效加载 BitmapBitMapFactory 提供了四类方法: decodeFile,decodeResource,decode
- 一、大致界面介绍:图1图2图3图4图1:手势密码绘制界面 【主要是绘制上方的9个提示图标和9个宫格密码图标】图2:设置手势密码 【监听手势的
- 本文实例为大家分享了Android仿Iphone屏幕底部弹出效果的具体代码,供大家参考,具体内容如下main.xml如下: <?xml
- 一:需求当小数位很多的时候,小数位后面可能有一些多余的0并没有任何实际意义。所以在某些业务需求下可以去掉这些多余的0。例如:0.2000可以
- 本文实例为大家分享了android通过NFC读取卡号的具体代码,供大家参考,具体内容如下1.获取权限<uses-permission
- 一.概述先给大家看一下效果图:点击中间的显示弹框按钮,从底部弹出来一个对话框,用户可以点击拍照或者从相册选择进行相应的操作,下面看看怎么实现
- 一、Java IO流1、概念在Java中,把不同的输入源 / 输出源(如:键盘、文件、网络链接等)抽象的表述为“流”(stream)通过 ”
- 之前在学习RecyclerView的时候,建立了一个可以滑动的View列表,但是当滑动距离过长的时候,需要手动返回到顶部,于是加了一个一键返
- 在android 6.0开始,部分的权限需要我们动态申请,也就是说当我们的打开app的时候系统不会主动像您申请app所需要的部分权限,需要客
- 1、使用步骤1)构建请求网址A、确定端点:每个GIS服务都有一个端点。例如,ArcGIS Server上Demographics文件夹下名为