可用于短信发送倒计时,请求倒计时等各个地方,使用方便,与组件解耦。

import android.os.CountDownTimer;
import android.view.View;
/*** 倒计时计时工具* @author wjh 2021-01-29** 当Activity/Fragment销毁的时候记得 调用CountDownTimerUtils.cancle* Fragment在onDestoryView时调用 视图被移除时(reason:CountDownTimerUtils调用可能会涉及Ui的改变)**/public class CountDownTimerUtils extends CountDownTimer {private View view;private long countDownInterval;private OnFinishListener listener;private OnTickListener tickListener;public interface OnFinishListener{void onFinishListener(View v);}public interface OnTickListener{void onTickListener(View v, long millisUntilFinished, long countDownInterval);}public CountDownTimerUtils(View view, long millisInFuture, long countDownInterval, OnTickListener tickListener, OnFinishListener listener){super(millisInFuture,countDownInterval);this.view=view;//倒计时相关组件  可以是TextView Button 等等this.countDownInterval=countDownInterval;//倒计时时长this.listener=listener;//倒计时结束监听this.tickListener=tickListener;//计时监听 相隔一秒调用}@Overridepublic void onTick(long millisUntilFinished) {tickListener.onTickListener(view,millisUntilFinished,countDownInterval);}@Overridepublic void onFinish() {listener.onFinishListener(view);}
}

使用

//对当前获取验证码控件进行倒计时相关设置CountDownTimerUtils countDownTimerUtils = new CountDownTimerUtils(get_auth_code_tv, 60000, 1000, new CountDownTimerUtils.OnTickListener() {@Overridepublic void onTickListener(View v, long millisUntilFinished, long countDownInterval) {TextView view = (TextView) v;view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.black));//设置不可用view.setEnabled(false);//设置倒计时时间view.setText("已发送(" + millisUntilFinished / countDownInterval + ")");}}, new CountDownTimerUtils.OnFinishListener() {@Overridepublic void onFinishListener(View v) {TextView view = (TextView) v;view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.enabled_2_color));view.setText(R.string.get_auth_code);//重新获得点击view.setEnabled(true);}});countDownTimerUtils.start();//在需要的地方调用该方法启动倒计时

android 好用的自定义倒计时工具(验证码发送倒计时等等)相关推荐

  1. 使用 JavaScript 基于 定时器 实现30秒倒计时限制 验证码发送

    存放于工具 JS 文件中的代码 var clock = '';//定时器对象,用于页面30秒倒计时效果 var nums = 30; var validateCodeButton; //基于定时器实现 ...

  2. 倒计时软件/倒计时工具/倒计时器

    一.倒计时软件的使用场景 倒计时软件可用于演示PPT.比赛等需要控制时间的场景. 软件下载地址(2021-6-6更新): https://download.csdn.net/download/tech ...

  3. 解密android日志xlog,安卓开发技巧2:自定义日志工具类XLog的实现

    安卓开发技巧二:自定义日志工具类XLog的实现 我们在开发过程中,打印日志是必不可少的一个调试环节,然而,直接使用系统自带的Log日志类,并不能满足我们实际项目的需求:假如我们现在在开发一款比较大的项 ...

  4. android 一分钟倒计时动画,Android利用属性动画自定义倒计时控件

    本文介绍一下利用属性动画(未使用Timer,通过动画执行次数控制倒计时)自定义一个圆形倒计时控件,比较简陋,仅做示例使用,如有需要,您可自行修改以满足您的需求.控件中所使用的素材及配色均是笔者随意选择 ...

  5. Android 集成Mob实现手机短信验证码

    项目中集成MOB.com提供的三方短信SDK. 当然这些短信都是免费的.并且可以在您申请的MOB.com后台去查看短信注册用户的相关信息. 这篇文后半部分会提供一个简单的验证短信Demo,有界面,当然 ...

  6. 【Android 内存优化】自定义组件长图组件 ( 获取图像宽高 | 计算解码区域 | 设置图像解码属性 复用 像素格式 | 图像绘制 )

    文章目录 一.获取图像真实宽高 二.计算解码区域 三.设置解码参数 内存复用 像素格式 四.图像绘制 五.执行效果 六.源码及资源下载 官方文档 API : BitmapRegionDecoder 在 ...

  7. Android PermissionUtils:运行时权限工具类及申请权限的正确姿势

    Android PermissionUtils:运行时权限工具类及申请权限的正确姿势 ifadai 关注 2017.06.16 16:22* 字数 318 阅读 3637评论 1喜欢 6 Permis ...

  8. android 万能倒计时,时分秒倒计时

    1.工具类 /*** 作者:created by meixi* 邮箱:15913707499@163.com* 日期:2018/12/28 15*/public class TimerUtil {pr ...

  9. android 获取对话框对象,Android 基本Dialog和自定义Dialog

    Android 基本Dialog和自定义Dialog Dialog类是对话框的基类,但你应该避免直接实例化Dialog ,可以使用子类 1.AlertDialog 此对话框可以显示标题,最多三个按钮, ...

最新文章

  1. centos php svn,centos7中搭建svn服务器(示例代码)
  2. Advanced Installer 制作.NetWeb部署安装包
  3. DOM4j读取XML文件(SAXReader)
  4. leetcode练习
  5. javascript数组类型
  6. 26岁的她,成为深圳大学史上最年轻正教授!
  7. zemax设置 像方远心_ZEMAX相机标定非常不完全指南
  8. Modbus教程| Modbus协议,ASCII和RTU帧,Modbus工作
  9. OPPO K9s官宣:5000mAh超大电量 充电功率阉割明显
  10. grub引导项修复详解_修复grub2双系统引导及顺序
  11. 按矩阵对角线输出问题
  12. web安全之XSS攻击
  13. 二、Sql Server 基础培训《进度2-关于主键(知识点学习)》
  14. 配置Android应用开发环境
  15. 中级软件测试技能,中级软件测试工程师的职责描述精选
  16. UVALive - 3713 Astronauts(2-SAT)
  17. 计算机屏幕上一致出现菜单解锁,解决方法:如何解锁计算机显示器菜单
  18. 【动手学习pytorch笔记】28.机器翻译数据集
  19. 功能测试与项目实战之测试计划(精辟干货)
  20. 字符串转化int类型(整数)

热门文章

  1. 基于 zigbee的城市道路路灯实时远程监控与节能系统
  2. VUE程序运行过程-runtime-complier和runtime-only的区别
  3. 支付宝支付和微信支付容易被风控可以看一下这个操作
  4. Tomcat性能调优
  5. android如何打印图片格式,打印照片  |  Android 开发者  |  Android Developers
  6. html css 范围选择框,jquery日期范围选择器插件
  7. 周末快乐。关于Live Mail Desktop
  8. halcon partion_dynamic 区域等宽分割
  9. 安装IDEA的教程以及配置JDK环境变量
  10. SKlearn二分类评价指标