1. public class CountDownTimerUtils extends CountDownTimer {
  2. private TextView mTextView;
  3. /**
  4. * @param textView          The TextView
  5. *
  6. *
  7. * @param millisInFuture    The number of millis in the future from the call
  8. *                          to {@link #start()} until the countdown is done and {@link #onFinish()}
  9. *                          is called.
  10. * @param countDownInterval The interval along the way to receiver
  11. *                          {@link #onTick(long)} callbacks.
  12. */
  13. public CountDownTimerUtils(TextView textView, long millisInFuture, long countDownInterval) {
  14. super(millisInFuture, countDownInterval);
  15. this.mTextView = textView;
  16. }
  17. @Override
  18. public void onTick(long millisUntilFinished) {
  19. mTextView.setClickable(false); //设置不可点击
  20. mTextView.setText(millisUntilFinished / 1000 + "秒后可重新发送");  //设置倒计时时间
  21. mTextView.setBackgroundResource(R.drawable.bg_identify_code_press); //设置按钮为灰色,这时是不能点击的
  22. /**
  23. * 超链接 URLSpan
  24. * 文字背景颜色 BackgroundColorSpan
  25. * 文字颜色 ForegroundColorSpan
  26. * 字体大小 AbsoluteSizeSpan
  27. * 粗体、斜体 StyleSpan
  28. * 删除线 StrikethroughSpan
  29. * 下划线 UnderlineSpan
  30. * 图片 ImageSpan
  31. * http://blog.csdn.net/ah200614435/article/details/7914459
  32. */
  33. SpannableString spannableString = new SpannableString(mTextView.getText().toString());  //获取按钮上的文字
  34. ForegroundColorSpan span = new ForegroundColorSpan(Color.RED);
  35. /**
  36. * public void setSpan(Object what, int start, int end, int flags) {
  37. * 主要是start跟end,start是起始位置,无论中英文,都算一个。
  38. * 从0开始计算起。end是结束位置,所以处理的文字,包含开始位置,但不包含结束位置。
  39. */
  40. spannableString.setSpan(span, 0, 2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);//将倒计时的时间设置为红色
  41. mTextView.setText(spannableString);
  42. }
  43. @Override
  44. public void onFinish() {
  45. mTextView.setText("重新获取验证码");
  46. mTextView.setClickable(true);//重新获得点击
  47. mTextView.setBackgroundResource(R.drawable.bg_identify_code_normal);  //还原背景色
  48. }
  49. }

使用:

CountDownTimerUtils mCountDownTimerUtils = new CountDownTimerUtils(mButton, 60000, 1000);

mCountDownTimerUtils.start();

												

Android中注册获取验证码倒计时按钮的更多相关文章

  1. android学习小例子——验证码倒计时按钮

    1.activity_main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andro ...

  2. 前端学习——ionic/AngularJs——获取验证码倒计时按钮

     按钮功能为:点击"获取验证码"--按钮不可用-设置倒计时-60秒后重新获取. 代码借鉴于:http://plnkr.co/edit/Swj82MpJSix3a47jZRHP?p= ...

  3. Android 获取验证码倒计时实现

    Android 获取验证码倒计时实现 2017年10月24日 09:55:41 FBY展菲 阅读数:2002    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  4. angular中service封装$http做权限时拦截403等状态及获取验证码倒计时、跨域问题解决

    封装$http.做权限时拦截403等状态及获取验证码倒计时: 拦截接口返回状态 var app = angular.module('app'); app.factory('UserIntercepto ...

  5. Andorid实现点击获取验证码倒计时效果

    这篇文章主要介绍了Andorid实现点击获取验证码倒计时效果,这种效果大家经常遇到,想知道如何实现的,请阅读本文   我们在开发中经常用到倒计时的功能,比如发送验证码后,倒计时60s再进行验证码的获取 ...

  6. iOS 短信验证码倒计时按钮的实现

    验证码倒计时按钮的应用是非常普遍的,本文介绍了IOS实现验证码倒计时功能,点击获取验证码,进入时间倒计时,感兴趣的小伙伴们可以参考一下: 实现思路: 创建按钮,添加点击方法: 用NSTimer定时器, ...

  7. iOS项目中获取验证码倒计时及闪烁问题解决方案

    -(void)startTime{ __block int timeout= 59; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queu ...

  8. js点击按钮获取验证码倒计时

    //发送验证码倒计时 var clock = ''; var nums = 60; var btn; $("#btnGetVerCode").click(function () { ...

  9. clips 前端 js 倒计时 获取验证码的按钮

    <a href="javascript:void(0);" onclick="get_captcha()" class="btn btn-def ...

随机推荐

  1. matlab 图像Mat类型矩阵中的值(uint8)类型转换,防止溢出

    a=[50,60,70; 80,90,50; 100,55,40] 假设a是一个灰度图的mat形式(当然实际的size肯定比这大,我只是举例子),如果需要对这个矩阵的像素进行加减处理,很可能会产生溢出 ...

  2. SQL优化套路

    直奔主题: (1) SELECT(2) DISTINCT <SELECT_LIST>(3) FROM <LEFT_TABLE> <JOIN_TYPE> (4) JO ...

  3. javascript如何封装函数

    通常写js组件开发的,都会用到匿名函数的写法去封装一个对象,与外界形成一个闭包的作用域.封装,全天下漫天遍野的封装,JQuery,EXT和Prototype.js封装的是javascript,jQue ...

  4. 【BZOJ4651】【NOI2016】网格(Tarjan,哈希)

    [BZOJ4651][NOI2016]网格(Tarjan,哈希) 题面 BZOJ 洛谷 题解 首先把题目稍微变得好说一些,给定一个网格,已经删去了若干个格子 问最少删去多少个格子使得图不连通. 这题的 ...

  5. Unity3D手游开发日记(2) - 技能系统架构设计

    我想把技能做的比较牛逼,所以项目一开始我就在思考,是否需要一个灵活自由的技能系统架构设计,传统的技能设计,做法都是填excel表,技能需要什么,都填表里,很死板,比如有的技能只需要1个特效,有的要10 ...

  6. jqury中关于ajax的几个常用的函数

    一: AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术 ...

  7. bzoj2314: 士兵的放置(树形DP)

    0表示被父亲控制,1表示被儿子控制,2表示被自己控制.f表示最少士兵数,g表示方案数. 转移贼难写,写了好久之后写不下去了,看了一眼题解,学习了...原来还可以这么搞 比如求f[i][1]的时候,要在 ...

  8. bzoj4569: [Scoi2016]萌萌哒(ST表+并查集)

    好喵喵的题 将一个要求用ST表分割成logn个要求,如果把f[i][j]和f[u][v]在同一个集合,那么f[i][j-1]和f[u][v-1],f[i+2^(j-1)][j-1]和f[u][u+2^ ...

  9. 【题解】征途 SDOI 2016 BZOJ 4518

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4518 首先推式子,我们用$x_i$表示第$i$段的路程,$sum$表示总路程,根据方差和平均 ...

  10. C ------ static 关键字的作用

    首先要理解生存周期与作用域的区别: 生存周期: 变量从定义到销毁的时间范围.存放在全局数据区的变量的生存周期存在于整个程序运行期间,而存放在栈中的数据则随着函数等的作用域结束导致出栈而销毁,除了静态变 ...