android:当我点击按钮时清理我的视图

时间:2011-11-24 18:23:20

标签: android android-canvas

我创建了一个视图并使用画布绘制了一些东西。

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);

3 个答案:

答案 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()