我创建了一个视图并使用画布绘制了一些东西。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyViewCircle myViewCircle = new MyViewCircle(this);
setContentView(R.layout.main);
Button evolve = (Button) findViewById(R.id.evolve);
img01.addView(myViewCircle);
evolve.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
}
private class MyViewCircle extends View {
public MyViewCircle(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.RED);
canvas.drawCircle(50, 50, 100, paint);
}
}
单击按钮时,如何编写代码来清理画布?另外,当我点击按钮时,如何改变我的形状?我想做改变坐标:
canvas.drawCircle(150, 150, 200, paint);
答案 0 :(得分:0)
onDraw(),因此如果单击该按钮,则可以检查onDraw()方法。
答案 1 :(得分:0)
尝试
@Override
protected void onDraw(Canvas canvas) {
if(shouldDraw){
super.onDraw(canvas);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.RED);
canvas.drawCircle(50, 50, 100, paint);
}else
Canvas.drawColor(Color.BLACK);
}
和onClick
shouldDraw = false;
view.invalidate();
答案 2 :(得分:0)
什么是img01,如果是另一个布局/视图,你可以调用Ex:img01.removeAllViews()
。