0

onDraw(Canvas キャンバス) は自動的に動作します。このビューでは、onTouch() メソッドが画面へのタッチをリッスンします。画面をクリックしたときに長方形を再描画する必要がありますが、長方形のキャンバスが描画されません。

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;
    }
4

1 に答える 1

0

これを試して、

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;
    }
于 2013-05-10T03:51:11.453 に答える