我想写一个计时器计时器从10开始倒计时,我想让10,9,8.这10个数动态的在TextView里面出现。。但是,,一点思路都没有求高手帮忙谢谢感激不尽。

解决方案 »

  1.   

    首先,要显示的数字是Sting格式,还是图片格式。第二,用canvas画上去就行。第三,定义一个int i=10;然后一个简单算法就可以实现while(true)
    {
       if(i==0){
         break;
       }else{
          i--;
       }
       canvas.drawbitmap(bm[i],x,y,paint);
      sleep(1000);
    }这里的bm[]是图像数组这样应该可以了吧。
      

  2.   

    用线程发消息给UI更新显示就可以了
    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));
    }
    }
        }
    }
      

  3.   


               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);
    }
    }要用直接调用sleep(0),要倒计时就sleep(1)
      

  4.   

    fontlose大哥。福星啊各位。。都谢谢了啊。感激不尽。。