3年前 (2015-08-20)  前端与界面 算法语言 软件开发 |   5 条评论  329 
文章评分 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 3年前 (2015-11-11) [0] [0]

登录

忘记密码 ?

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

切换登录

注册