0

我对绘图时画布的工作有疑问,提到画布保存绘图调用,位图保存实际像素数据,例如在代码中

public class MyView extends View{

    private Paint _p;
    public float x=10,y=10;
    private Canvas _canvas;
     static int cnt=0;

    public MyView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
        _p = new Paint();
        _p.setColor(Color.GREEN);
        _canvas = new Canvas();

        this.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                cnt++;
                _canvas.drawCircle(event.getX(), event.getY(), 10, _p);
                if(cnt>3){
                    cnt = 0;
                    invalidate();
                }
                return false;
            }
        });

    }

    public void onDraw(Canvas can){
        _canvas = can;
        super.onDraw(_canvas);
        _canvas.drawColor(Color.BLACK);
        _canvas.drawCircle(x, y, 10, _p);
        x = x +10;
        y= y+10;
    }
}

应该画3个圆圈,但事实并非如此,有人可以解释一下吗?提前谢谢

问候, 罗希特

4

1 回答 1

0

你的 onTouch 只有一次检查来绘制圆圈,它不是一个递归循环,直到绘制 3 为止。这是假设您的 _canvase.drawCircle() 事件(未显示)未绘制 3 个圆圈。

于 2012-04-05T05:12:06.977 回答