Android SDKで2Dグラフィックスをいじくり回していて、簡単な例に問題があります。
私は基本的/基本的な何かを誤解しているだけだと思います。
public class DrawView extends View {
Paint paint = new Paint();
Canvas canvas = new Canvas();
public DrawView(Context context) {
super(context);
paint.setColor(Color.BLACK);
}
@Override
public void onDraw(Canvas canvas) {
this.canvas = canvas;
this.canvas.drawLine(0,0, 500, 500, paint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.d("DrawView", "onTouchEvent: " + event.getX() + "," + event.getY() );
canvas.drawLine(0,500, 500, 0, paint);
return true;
}
}
上記のコードは、アプリの起動時から開始時まで0,0
に1本の線を描画します。500,500
その部分はうまく機能します。
問題は、タッチイベントで2番目の線が描画されないことです。ログに座標デバッグメッセージが表示されるため、これonTouchEvent
は間違いなく呼び出されています。
誰かが私が間違っていることを指摘できますか?