在画布中绘制组件没有绘制已经绘制的组件

时间:2016-09-28 11:43:21

标签: java android canvas bitmap

我尝试在触摸移动时在触摸点中绘制位图我需要在新添加的位置绘制位图而不是重新绘制整个点,如何实现它。

我尝试以下

@Override
public boolean onTouch(View v, MotionEvent event) {
    switch (event.getAction()){
        case MotionEvent.ACTION_DOWN:{
            break;
        }
        case MotionEvent.ACTION_MOVE:{
            drawPanel.setPaths(new PointF(event.getX(),event.getY()));
            drawPanel.invalidate();
            break;
        }
        case MotionEvent.ACTION_UP:{
            break;
        }
    }
    return true;
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);Z
    if(point != null) {
        for (PointF pointF : points)
            canvas.drawBitmap(shape, pointF.x, pointF.y, paint);
    }
}

我知道它再次画出循环。我需要继续画新位置才能做到这一点吗?

1 个答案:

答案 0 :(得分:0)

onDraw需要绘制整个视图。因此,无法在onDraw中仅绘制新的触摸。

您可以做的是创建一个内存位图,并在onTouch中为位图绘制新的触摸。然后将位图绘制到onDraw中的屏幕上。由于永远不会清除位图,因此您只需添加触摸即可。