2016-09-28 50 views
0

我嘗試在觸摸移動時在觸摸點中繪製位圖,我需要在新添加的位置繪製位圖,而不是再次重新繪製整個點如何實現這一點。在畫布中繪製組件不需要再繪製已經繪製的組件

我嘗試以下

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

我知道它再次戰平循環。我需要繼續吸取新的職位,只有如何做到這一點?

回答

0

onDraw需要繪製整個視圖。所以沒有辦法只繪製onDraw中的新接觸。

你可以做的是創建一個內存位圖,並在onTouch中爲位圖繪製新的觸摸。然後將位圖繪製到onDraw中的屏幕上。由於位圖永遠不會被清除,因此您只需添加觸摸即可。