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. webgl 初识2

    之前的文章介绍了webgl. 这里进一步精简. WebGL的全部内容就是创建不同的着色器, 向着色器提供数据然后调用gl.drawArrays 或 gl.drawElements 让WebGL调用当前 ...

  2. post和updatebatch区别 delphi

    Post是确认当前的修改,而UpdateBatch是把已经确认但是没有存盘的数据写入数据库如果不是使用批量更新的方式的时候,Post的时候,确认的修改直接写入数据库. 我弄了一个例子是ado的.往数据 ...

  3. 弱网络模拟测试工具---易测app

    易测功能介绍   易测是一款基于无线客户端研发场景的通用测试工具, 它通过在研发人员的自持机上提供各种辅助能力&标准化的专项测试服务来提升研发质量&效率.   易测app是阿里巴巴做的 ...

  4. 【bzoj3064】Tyvj 1518 CPU监控 线段树维护历史最值

    题目描述 给你一个序列,支持4种操作:1.查询区间最大值:2.查询区间历史最大值:3.区间加:4.区间赋值. 输入 第一行一个正整数T,表示Bob需要监视CPU的总时间. 然后第二行给出T个数表示在你 ...

  5. ACID和CAP, BASE

      ACID:关系型数据库中事务的4个属性:   Atomicity,原子性,整个事务的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间的某个环节.事务在执行过程中出错,会回滚到事务开始前的状 ...

  6. 【比赛】HNOI2018 总结

    一将功成万骨枯,我就是给那些队爷做基数的 一.比赛过程 Day1 看完题,暴力好打,然后就打 觉得第三题模型很好建啊,先看第三题吧(结果第三题是最..的) 图建出来,先看树的情况,设dp试一下 结果一 ...

  7. 【BZOJ1566】【NOI2009】管道取珠(动态规划)

    [BZOJ1566][NOI2009]管道取珠(动态规划) 题面 BZOJ 题解 蛤?只有两档部分分.一脸不爽.jpg 第一档?爆搜,这么显然,爆搜+状压最后统计一下就好了 #include<i ...

  8. linux内核分析第3章&第18章读书笔记

    linux内核分析第3章&第18章读书笔记 第三章 进程管理 进程:处于执行期的程序(目标码存放在某种存储介质上) 包含资源:可执行程序代码,打开的文件,挂起的信号,内核内部数据,处理器状态, ...

  9. [CodeVs1050]棋盘染色2(状态压缩DP)

    题目大意:有一个5*N(≤100)的棋盘,棋盘中的一些格子已经被染成了黑色,求最少对多少格子染色,所有的黑色能连成一块. 这题卡了我1h,写了2.6k的代码,清明作业一坨还没做啊...之前一直以为这题 ...

  10. 前端基础----html初识、常用标签

    一.HTML初识 web服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ...