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