java按钮倒计时_Hyena-倒计时按钮
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-倒计时按钮相关推荐
- Java实现文件上传-按钮弹出上传页面
转自: https://blessht.iteye.com/blog/1405057 最近自己在做一个小系统玩的时候涉及到了文件的上传,于是在网上找到Java上传文件的方案,最后确定使用common- ...
- java单击切换div_[Java教程]点击同一按钮实现div的隐藏与现实切换
[Java教程]点击同一按钮实现div的隐藏与现实切换 0 2016-01-16 21:00:12 点击同一按钮实现div的隐藏与现实切换: 在很多应用中,都有这样的功能,点击同一个按钮可以实现div ...
- java 点击一下左边按钮_右边显出一列表_举个例子_java椭圆按钮怎么设置,最好举一个简单的例子,只要有窗体中一个椭圆按钮就可以,最好有注释,谢谢,好的...
匿名用户 1级 2010-12-14 回答 椭圆按钮要重新绘制按钮才行,对你来说可能会比较难. import javax.swing.ImageIcon; import javax.swing.JBu ...
- android中在java代码中设置Button按钮的背景颜色
android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...
- Java 按钮组件_提交按钮
按钮在Swing中是非常常见的组件,用于触发特定动作.Swing中提供多种按钮,包括提交按钮.复选框.单选按钮等,这些按钮都是从AbstractButton类中继承而来的. 提交按钮 Swing中的提 ...
- JAVA实现动态时钟倒计时
JAVA实现动态时钟倒计时,如下图 源代码: Clock类 package ght05_timeClock;import java.awt.*; import java.awt.event.Actio ...
- java中点击按钮出现echarts图表_echarts 显示下载按钮,echarts 自定义按钮,echarts 添加按钮...
echarts 显示下载按钮,echarts 自定义按钮,echarts 添加按钮 >>>>>>>>>>>>>>&g ...
- java小程序显示多种按钮_微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能...
看了很多帖子,但是效果都不是很好.还是找微信小程序官方文档,自己写比较方便.自己动手丰衣足食!话不多说,上代码! 先来个效果图 html {{item.text}} 查看更多 收起 wxss .box ...
- java重置按钮功能函数_Bootstrap按钮功能之查询按钮和重置按钮
Bootstrap按钮功能之查询按钮和重置按钮 1.问题背景 一般情况下,查询列表有查询条件.查询按钮和重置按钮,输入查询条件,点击查询按钮查询列表等数据:点击重置按钮会将查询条件恢复到原始状态 2. ...
- 注册登录时,在点击获取验证码按钮后,改变按钮状态
按钮 首先是获取验证码的按钮: <div class="layui-form-item"><label for="phoneCode" cla ...
最新文章
- Ubuntu16.04如何换pip源
- NOIP信息奥赛--1995“同创杯”初中复赛题题解(三)
- 智能手机系统对进程生命周期的管理
- “豆瓣酱”之用户,场景,功能
- 深入互联网广告中的出价模式(中) — 智能出价模式
- 如何将自开发的SAP UI5应用以tile的方式配置到SAP Fiori Launchpad里
- 【pytorch】torch.cat()函数
- 程序员值得思考的问题
- django3安装rest_framework,并测试
- MySQL使用什么关键字添加唯一约束_mysql怎么添加唯一约束?
- asp:Button 事件,点击事件 html Button runat=sever
- linux:进程管理与SELinux
- QQ IP 地址查询相关
- react CSS实现箭头图标
- linux安装 jenkins(清华大学镜像站)
- Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.2.RELEASE:repackage (de
- 柔性电子,常用材料总结
- 韩顺平java-枚举和注解异常包装类
- 慢步人生路,什么是真爱?
- kafka 延迟队列