首页 > 代码库 > 自定义控件------倒计时的小demo
自定义控件------倒计时的小demo
package com.kallaite.rxjavademo.customcontrols;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;
public class TimerTextView extends TextView implements Runnable{
public TimerTextView(Context context) {
super(context);
init(context,null);
}
public TimerTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context,attrs);
}
public TimerTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context,attrs);
}
private int day;
private int hours;
private int mmin;
private int second;
private boolean flagRun;
private void init(Context context, AttributeSet attrs) {
}
public void setArrays(int day,int hours,int mmin,int second){
this.day = day;
this.hours = hours;
this.mmin = mmin;
this.second = second;
}
public void onStart(){
flagRun = true;
run();
}
public boolean isRun(){
return flagRun;
}
public void onstop(){
flagRun = false;
}
@Override
public void run() {
if (flagRun){
boolean b = runScripty();
if (b){
setText("倒计时结束");
}else {
setText(day + " 天 " + hours + " 小时 " + mmin + " 分钟 " + second + "秒");
postDelayed(this,1000);
}
}else {
removeCallbacks(this);
}
}
private boolean runScripty() {
second--;
if (second < 0){
mmin--;
second = 59;
if (mmin < 0){
hours--;
mmin = 59;
if (hours < 0){
day--;
hours = 23;
if (day < 0){
return true;
}
}
}
}
return false;
}
}
直接拿到项目中用就可以了,自定义控件使用大家都懂的。只是具有了自动更新的功能,这里的自动更新的实现当然只通过线程来实现了,所以要继承Runnable接口。
开启调用 onStart()方法。 暂停 onStop()方法, 设置时间通过 setArrays()来完成就OK了;
自定义控件------倒计时的小demo
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。