0
我正在通過onDraw()使用Timer移動Drawn Circle Shape。但它不像移動setMargin相對佈局那樣平滑移動。我該如何解決它? 這是我的Circle Shape代碼!如何移動畫布更平滑
public class Circle extends View{
int y =0 ;
public Circle(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);
c.drawCircle(100,y,10,p);
}
}
這是我的MainActivity代碼!
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout rl=new LinearLayout(this);
setContentView(rl);
rl.setBackgroundResource(R.drawable.ic_launcher);
final Circle c = new Circle(this);
rl.addView(c);
Timer t=new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
c.y+=4;
c.postInvalidate();
}
};
t.schedule(task,0,20);
}
@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;
}
}
這就像草稿移動一樣。我不知道如何解決它。有沒有其他方法可以順利移動。有人請幫助我!
您可能會嘗試降低計時器的值或將其完全移除並嘗試使用。 – Sushil
是的..平滑的較低的值,但我需要這麼高的價值..謝謝 –
然後,你可以減少這個值c.y + = 4;以較低的增量 – Sushil