自定义控件------倒计时的小demo
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义控件------倒计时的小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的主要内容,如果未能解决你的问题,请参考以下文章