eraser = new Paint();
eraser.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.CLEAR));
このPaintを用いてCanvasに描画すれば、描画範囲が消去される。
参考リンク
キャプチャ画像を取る方法(大ハマリ)
ページ内の【消しゴム機能】 の項
eraser = new Paint();
eraser.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.CLEAR));
arrows = Bitmap.createBitmap(arrowOrg.getWidth() * 12, arrowOrg.getHeight(), Bitmap.Config.ARGB_8888);
Canvas arrowCanvas = new Canvas(arrows);
arrowCanvas.drawColor(Color.WHITE);
Matrix m = new Matrix();
Rect src = new Rect(0, 0, arrowOrg.getWidth(), arrowOrg.getHeight());
Rect dst = new Rect(0, 0, arrowOrg.getWidth(), arrowOrg.getHeight());
for (int i = 0; i < 12; i++) {
arrowCanvas.drawBitmap(Bitmap.createBitmap(arrowOrg, 0, 0, arrowOrg
.getWidth(), arrowOrg.getHeight(), m, false), src, dst, p);
dst.set(dst.left + arrowOrg.getWidth(), dst.top, dst.right
+ arrowOrg.getWidth(), dst.bottom);
m.postRotate(30);
buttonL.setOnTouchListener(new OnTouchListener(
) {
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
gameView.turnLeft();
break;
case MotionEvent.ACTION_UP:
gameView.turnReset();
break;
}
return false;
}
});
public void turnLeft() {
isRight = false;
isLeft = true;
}
public void turnReset() {
isRight = false;
isLeft = false;
}
if (isLeft)
theta = theta - (Math.PI * (delta / 1000.0));