• 欢迎加“百元导航”为主页,windows8风格,0.3s极速加载
  • 王柏元的博客专用搜索引擎:极客人,就用“极客搜”!
  •    1年前 (2015-08-20)  前端与界面 算法语言 软件开发 |   5 条评论  194 
    文章评分 0 次,平均分 0.0

    安卓手机管家类软件,在对手机的应用权限进行管理时常常会跳出这样的弹出框。

    安卓实现倒计时按钮效果

    这样的按钮出现在很多场合,系统会给一定时间比如30s提示用户选择操作“禁止”还是“允许”,并设置倒计时,并在倒计时为零后系统会为用户选择默认行为执行。这个设计十分智能化,在无人使用手机时实现了自动化处理。下面介绍使用handler和Runnable实现这样的按钮是效果:

    安卓实现倒计时按钮效果

    在极客人的一篇转载文章《Android使用线程更新UI的几种方法》中,提到了用在Android里使用 Runnable和 Handler.PostDelayed(Runnable,Time) 定时更新界面。下面我讲解的便是使用Runnable和 Handler.PostDelayed(Runnable,Time) 实现倒计时效果的按钮。

    假设点击倒计时按钮的动作为运行函数 function(),按钮变量名为forbiddenBtn下面是实现的代码:

    原理

    上面代码实现的原理是使用timeHander.postDelayed(context,int)函数定时调用一个Runnable呢,这里是延时1000ms执行一下timerRunnable。调用上述倒计时的代码为:

    即立即执行timerRunnable;当执行timerRunnable时,由于second初始化为30s,if语句执行else部分,second在button上显示出来后执行减1,然后通过timerHandler.postDelayed(this, 1000); 在1秒后再次执行timerRunnable,此时second=29……依此类推,当second=0时,就会执行function(),执行倒计时归零后的默认操作,

     

    除特别注明外,本站所有文章均为王柏元的博客原创,为了尊重作者的劳动成果,转载请注明出处http://wangbaiyuan.cn/android-implementation-effect-of-countdown-button.html,如果你觉得这篇文章对你有用,可以点击文章下面的“赞助作者”打赏作者!

    关于
    记录生活,镌刻心路;泼洒文墨,分享技术!王柏元的博客致力于IT经验交流,并原创翻译引进外文文章,打开IT国际化视野

    发表评论

    格式
    1. 博主,能否问下,我复制你的代码出来的结果是这样的
      Handler timerHandler = new Handler();
      int autoRun=30;//设置倒计时时间30s
      分号报错为什么?
      Syntax error on token “;”, , expected

      轩然 评论达人 LV.2 1年前 (2015-11-11) [0] [0]

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册