码迷,mamicode.com
首页 > 其他好文 > 详细

自定义控件------倒计时的小demo

时间:2017-06-27 16:17:55      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:tde   custom   xtend   项目   demo   调用   设置   min   cal   

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

标签:tde   custom   xtend   项目   demo   调用   设置   min   cal   

原文地址:http://www.cnblogs.com/wlwqnj/p/7085540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!