如何添加计时器以使线条刷新并在每2秒后出现?

时间:2010-12-02 16:07:25

标签: java android timer

我正在制作一个应用程序来制作一个时钟的手。也就是说,我在屏幕上绘制一条简单的线,并希望它像时钟的手一样旋转。我是否使用计时器这样做?(这样线条的位置刷新)。线条的一个端点应该旋转,而另一个端点保持稳定。在下面的代码中,我只在屏幕上画一条线:

DrawView.java:

package LineRefresh.xyz.com;

import java.util.Timer;
import java.util.TimerTask;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class DrawView extends View {
Paint paint = new Paint();

public DrawView(Context context) {
    super(context);    
}

@Override
public void onDraw(final Canvas canvas) { 
 paint.setColor(Color.BLACK);
 canvas.drawLine(50, 200, 270, 200, paint);  


}

}


LineRefresh.java:

package LineRefresh.xyz.com;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;

public class LineRefresh extends Activity {
DrawView drawView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    drawView = new DrawView(this);
    drawView.setBackgroundColor(Color.WHITE);
    setContentView(drawView);

}
}

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

private Handler mHandler = new Handler();

private Runnable MethodToDrawClockLine = new Runnable() 
{  
    public void run() 
    {  
        //execute here your drawing routine.
        // after drawing set the timer for another x period of time
        mHandler.postDelayed(MethodToDrawClockLine, 1000); //it'll re-execute it after 1sec.  
    }  
}

在您的OnCreate或任何您想要启动计时器的方法中,您可以使用:

mHandler.removeCallbacks(mUpdateTimeTask); //确保在添加新处理程序之前删除任何处理程序
mHandler.postDelayed(MethodToDrawClockLine,1000); //它将在1秒后执行。

完成后,请记得删除处理程序。 mHandler.removeCallbacks(mUpdateTimeTask);

那就是它。