Hyena.jpg

像AndroidUtilCode这样优秀的库替我管理了工具类,大大提高了我工作的效率,现在工具类终于解放了双手,这得益于AndroidUtilCode,每当构建新项目,只需要一行代码就可以把需要的工具类引用进来,而且这个库还保持着活跃的更新,更多的人在参与进去,开源的力量让AndroidUtilCode变得愈加强大,也使更多的android开发者收益,再次感谢。

Hyena鬣狗快速开发库也是借鉴了前辈的思路,想成为一个简单好用,保持活力,受大家喜欢的开源库。

核心为快速开发,定位小巧精悍,内容简单精致,整合常用的自定义View、Base类、通用、词典

图例是比较常见的需求了

* 点击获得验证码

* 按钮不可点击且进入倒计时

* 时间结束恢复状态。

使用鬣狗就可以很快速方便的实现这个功能,详细的使用示例

获得验证码.gif

源码 CountDownButton.java

public class CountDownButton extends AppCompatButton {

//默认总时长

private int mMillisInFutureDefault = 60 * 1000;

//默认计时间隔

private int mCountDownIntervalDefault = 1000;

//系统api 倒计时定时器

private CountDownTimer mCountDownTimer;

//按钮文本

private String mBtnStr;

public CountDownButton(Context context) {

super(context);

}

public CountDownButton(Context context, AttributeSet attrs) {

super(context, attrs);

}

public CountDownButton(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

}

/**

* 开始倒计时(默认总时长、默认计时间隔

*/

public void onStart() {

onStart(mMillisInFutureDefault, mCountDownIntervalDefault);

}

/**

* 开始倒计时(自定义总时长、默认计时间隔

*

* @param millisInFuture 总时长

*/

public void onStart(long millisInFuture) {

onStart(millisInFuture, mCountDownIntervalDefault);

}

/**

* 开始倒计时

*

* @param millisInFuture 总时长

* @param countDownInterval 计时间隔

*/

public void onStart(long millisInFuture, final long countDownInterval) {

//如果在执行倒计时 退出

if (isCountDown()) {

return;

}

//保存当前按钮文字

mBtnStr = getText().toString();

if (countDownInterval == 0) {

throw new UnsupportedOperationException("Exception:0 作为计时间隔是个糟糕的选择");

}

mCountDownTimer = new CountDownTimer(millisInFuture, countDownInterval) {

private String result;

@Override

public void onTick(long millisUntilFinished) {

result = millisUntilFinished / countDownInterval + "";

setText(result);

//设置为不可用

if (isEnabled()) {

setEnabled(false);

}

}

@Override

public void onFinish() {

onFinishCountDown();

}

};

mCountDownTimer.start();

}

/**

* 停止倒计时

*/

public void onStop() {

if (!isCountDown()) {

return;

}

mCountDownTimer.cancel();

onFinishCountDown();

}

/**

* 结束倒计时

*/

private void onFinishCountDown() {

if (TextUtils.isEmpty(mBtnStr)) {

mBtnStr = "";

}

setText(mBtnStr);

mCountDownTimer = null;

setEnabled(true);

}

/**

* 是否在倒计时中

*

* @return true:是 false:否

*/

public boolean isCountDown() {

return mCountDownTimer != null;

}

}

更多功能请前往Github查看,传送门: Hyena鬣狗快速开发库

java按钮倒计时_Hyena-倒计时按钮相关推荐

  1. Java实现文件上传-按钮弹出上传页面

    转自: https://blessht.iteye.com/blog/1405057 最近自己在做一个小系统玩的时候涉及到了文件的上传,于是在网上找到Java上传文件的方案,最后确定使用common- ...

  2. java单击切换div_[Java教程]点击同一按钮实现div的隐藏与现实切换

    [Java教程]点击同一按钮实现div的隐藏与现实切换 0 2016-01-16 21:00:12 点击同一按钮实现div的隐藏与现实切换: 在很多应用中,都有这样的功能,点击同一个按钮可以实现div ...

  3. java 点击一下左边按钮_右边显出一列表_举个例子_java椭圆按钮怎么设置,最好举一个简单的例子,只要有窗体中一个椭圆按钮就可以,最好有注释,谢谢,好的...

    匿名用户 1级 2010-12-14 回答 椭圆按钮要重新绘制按钮才行,对你来说可能会比较难. import javax.swing.ImageIcon; import javax.swing.JBu ...

  4. android中在java代码中设置Button按钮的背景颜色

    android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...

  5. Java 按钮组件_提交按钮

    按钮在Swing中是非常常见的组件,用于触发特定动作.Swing中提供多种按钮,包括提交按钮.复选框.单选按钮等,这些按钮都是从AbstractButton类中继承而来的. 提交按钮 Swing中的提 ...

  6. JAVA实现动态时钟倒计时

    JAVA实现动态时钟倒计时,如下图 源代码: Clock类 package ght05_timeClock;import java.awt.*; import java.awt.event.Actio ...

  7. java中点击按钮出现echarts图表_echarts 显示下载按钮,echarts 自定义按钮,echarts 添加按钮...

    echarts 显示下载按钮,echarts 自定义按钮,echarts 添加按钮 >>>>>>>>>>>>>>&g ...

  8. java小程序显示多种按钮_微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能...

    看了很多帖子,但是效果都不是很好.还是找微信小程序官方文档,自己写比较方便.自己动手丰衣足食!话不多说,上代码! 先来个效果图 html {{item.text}} 查看更多 收起 wxss .box ...

  9. java重置按钮功能函数_Bootstrap按钮功能之查询按钮和重置按钮

    Bootstrap按钮功能之查询按钮和重置按钮 1.问题背景 一般情况下,查询列表有查询条件.查询按钮和重置按钮,输入查询条件,点击查询按钮查询列表等数据:点击重置按钮会将查询条件恢复到原始状态 2. ...

  10. 注册登录时,在点击获取验证码按钮后,改变按钮状态

    按钮 首先是获取验证码的按钮: <div class="layui-form-item"><label for="phoneCode" cla ...

最新文章

  1. Ubuntu16.04如何换pip源
  2. NOIP信息奥赛--1995“同创杯”初中复赛题题解(三)
  3. 智能手机系统对进程生命周期的管理
  4. “豆瓣酱”之用户,场景,功能
  5. 深入互联网广告中的出价模式(中) — 智能出价模式
  6. 如何将自开发的SAP UI5应用以tile的方式配置到SAP Fiori Launchpad里
  7. 【pytorch】torch.cat()函数
  8. 程序员值得思考的问题
  9. django3安装rest_framework,并测试
  10. MySQL使用什么关键字添加唯一约束_mysql怎么添加唯一约束?
  11. asp:Button 事件,点击事件 html Button runat=sever
  12. linux:进程管理与SELinux
  13. QQ IP 地址查询相关
  14. react CSS实现箭头图标
  15. linux安装 jenkins(清华大学镜像站)
  16. Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.2.RELEASE:repackage (de
  17. 柔性电子,常用材料总结
  18. 韩顺平java-枚举和注解异常包装类
  19. 慢步人生路,什么是真爱?
  20. kafka 延迟队列

热门文章

  1. 多媒体信息发布终端盒的应用和功能
  2. 使用vye配置路由代码
  3. word怎么设置边距为80磅_上边距80磅,下边距82磅是多少
  4. vue中axios拦截器的使用
  5. 专访融文中国区负责人李建兴:洞悉舆情环境,打造一流品牌
  6. CSIC2010学习Word2vec表示及可视化
  7. linux中常用nginx命令
  8. android开发笔记之系统属性(ro.com.google.clientidbase.ms)随卡适配
  9. 进销存管理面临哪些痛点问题?
  10. 推荐7个Flutter重磅开源项目!