当前位置: 代码迷 >> Android >> 跪倒计时10到0的计时器方法
  详细解决方案

跪倒计时10到0的计时器方法

热度:97   发布时间:2016-05-01 18:13:18.0
跪求一个倒计时10到0的计时器方法
我想写一个计时器。。。计时器从10开始倒计时,我想让10,9,8.。。。这10个数动态的在TextView里面出现。。但是,,一点思路都没有。。。求高手帮忙。。。谢谢。。。感激不尽。。。。

------解决方案--------------------
首先,要显示的数字是Sting格式,还是图片格式。

第二,用canvas画上去就行。

第三,定义一个int i=10;然后一个简单算法就可以实现

while(true)
{
if(i==0){
break;
}else{
i--;
}
canvas.drawbitmap(bm[i],x,y,paint);
sleep(1000);
}

这里的bm[]是图像数组。。。

这样应该可以了吧。


------解决方案--------------------
用线程发消息给UI更新显示就可以了

Java code
public class CntActivity extends Activity {    /** Called when the activity is first created. */    TextView tv=null;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                 tv=new TextView(this);        setContentView(tv);        tv.setText("0");        Handler handle=new Handler()         {            @Override            public void handleMessage(Message msg) {                // TODO Auto-generated method stub                if(msg.what==1)                {                    tv.setText(msg.arg1+"");                }                else super.handleMessage(msg);            }                     };         /*开始计时*/        new CRunCount(handle).start();             }        class  CRunCount extends Thread{        Handler uiHandle;        public CRunCount(Handler handle)        {             uiHandle=handle;        }        @Override        public void run() {            // TODO Auto-generated method stub            super.run();            for(int i=0;i<100;i++)            {                try {                    Thread.sleep(100);                } catch (InterruptedException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }                uiHandle.sendMessage(uiHandle.obtainMessage(1, i, 0));            }        }    }}
------解决方案--------------------
探讨

用线程发消息给UI更新显示就可以了

Java code

public class CntActivity extends Activity {
/** Called when the activity is first created. */
TextView tv=null;
@Override
public void onCreate(Bundle ……

------解决方案--------------------
Java code
           private class MyHandler extends Handler{        @Override        public void handleMessage(Message msg){            switch(msg.what){            case 0:                text.setText("" + i++);                sleep(0,1000);                break;            case 1:                text.setText("" + i--);                sleep(1,1000);                break;            default:break;            }        }                public void sleep(int what,int delayMillis){            removeMessages(what);            sendMessageDelayed(this.obtainMessage(what), delayMillis);        }    }
  相关解决方案