問題描述
onTouch() 無法繪製畫布 (onTouch() can't draw canvas)
onDraw(Canvas canvas) works automatically. In this view onTouch() method listens for touching the screen. I need to redraw the rectangle when I click on the screen but it isn't drawing the rectangle canvas.
public class Viewer extends View implements OnTouchListener{
public Viewer(Context context) {
super(context);
.............
..............
this.setOnTouchListener(this);
}
@Override
public void onDraw(Canvas canvas){
super .onDraw(canvas);
drawBackGround(imgObj.bg01, canvas);
}
@Override
public boolean onTouch(View v,MotionEvent event) {
// TODO Auto‑generated method stub
Canvas c = new canvas();
c.drawRect(.......); //<‑‑‑‑‑‑ It's work but it isn't redraw
return true;
}
參考解法
方法 1:
Try this,
Canvas mCanvas;
@Override
public void onDraw(Canvas canvas){
mCanvas = canvas;
drawBackGround(imgObj.bg01, mCanvas);
super.onDraw(mCanvas);
}
@Override
public boolean onTouch(View v,MotionEvent event) {
// TODO Auto‑generated method stub
mCanvas.drawRect(.......);
invalidate();
return true;
}