我的圈子類!如何用計時器移動畫布形狀
public class Circle extends View{
int y =0 ;
public line(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
protected void onDraw(Canvas c){
super.onDraw(c);
Paint p=new Paint(Paint.ANTI_ALIAS_FLAG);
p.setColor(Color.BLUE);
p.setStrokeWidth(3);
if (y==0){
c.drawCircle(100,y+5,50,p);
}
else{
c.drawCircle(100,y+5,50,p);
}
}
public void invalidate(){
invalidate();
}
和MainActivity !!
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RelativeLayout rl=new RelativeLayout(this);
setContentView(rl);
rl.setBackgroundResource(R.drawable.ic_launcher);
Circle c=new Circle(this);
rl.addView(c);
Timer t=new Timer();//here is Where I need help
t.schedule(new MyNewTimer(),0,20);//here is Where I need help
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
我定時器想法從一些網站。我是Android編程的初學者。我真的不知道如何用計時器來移動這個形狀。其實,我不知道該把這個時間任務放在哪裏,以及在哪裏放置! 請好心幫助我!
我添加此上的onCreate()
Timer timer = new Timer();
timer.schedule(new MyTimer(),0,20);
我創建MyTimer類
public class MyTimer extends TimerTask{
@Override
public void run(){
handler.post(new Runnable(){
public void run(){
//Here, I can't inherit circle.invalidate()
}
}};
}
你的用於'Circle'的'onDraw'方法有一個'if'語句,它不管'y'的值如何都繪製相同的東西;你應該解釋你想要完成的事情。而且,你的'invalidate()'方法會遞歸直到堆棧溢出。最後,你需要告訴我們'MyNewTimer'類是做什麼的。 –
yess,yess。我之前創建了MyNewTimer類,但是我不能從circle類繼承y。 MyNewTimer需要invalidate()是靜態的,但通過改變它,在circle類中有一個錯誤,我不想修復它。請給我建議,以滿足正確的修復!非常感謝你Ted Hopp! –
我在onCreate()上加上這個() Timer timer = new Timer(); timer.schedule(new MyTimer(),0,20); ,打造一流的MyTimer 公共類MyTimer擴展的TimerTask { \t @覆蓋 \t公共無效的run(){ \t \t handler.post(新的Runnable(){ \t \t \t公共無效的run(){ \t \t \t \t //我不能調用無效(),如何調用它 \t \t \t} \t \t}}; } –