У меня есть холст и краски для рисования на холсте.
я могу рисовать на холсте другим цветом.
Теперь, если есть белый простой фон, тогда все в порядке. Я использую белый цвет для Erase и его работа отлично.
Но если на заднем плане есть какое-либо изображение, и если я выбрал ластик (как белый цвет), то это изображение белого цвета на изображении.
Вместо того, что я хочу, пока я выбираю ластик, и если на заднем плане есть какое-либо изображение, то ластик должен стереть краску и показать изображение. ,
Так может ли anybudy помочь мне, как реализовать это ??
Спасибо.
Отредактировано:
Я использую код ниже, чтобы стереть краску. Но все еще не в состоянии стереть его.
case R.id.eraserBtn:
currentPaint = new Paint();
currentPaint.setAlpha(0);
currentPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
currentPaint.setAntiAlias(true);
//currentPaint.setColor(0x00000000);
currentPaint.setDither(true);
currentPaint.setStyle(Paint.Style.STROKE);
currentPaint.setStrokeJoin(Paint.Join.ROUND);
currentPaint.setStrokeCap(Paint.Cap.ROUND);
currentPaint.setStrokeWidth(3);
break;
Новое редактирование:
case R.id.eraserBtn:
currentPaint = new Paint();
currentPaint.setAlpha(0);
currentPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
currentPaint.setAntiAlias(true);
//currentPaint.setColor(0x00000000);
currentPaint.setDither(true);
currentPaint.setStyle(Paint.Style.STROKE);
currentPaint.setStrokeJoin(Paint.Join.ROUND);
currentPaint.setStrokeCap(Paint.Cap.ROUND);
currentPaint.setStrokeWidth(15);
break;
Другое Править:
while (_run){
try{
canvas = mSurfaceHolder.lockCanvas(null);
if(mBitmap == null){
mBitmap = Bitmap.createBitmap (1, 1, Bitmap.Config.ARGB_8888);
}
final Canvas c = new Canvas (mBitmap);
//canvas.drawColor(0, PorterDuff.Mode.CLEAR);
c.drawColor(0, PorterDuff.Mode.CLEAR);
//canvas.drawColor(mColor);// Edited by Shreyash
c.drawColor(mColor);
// Bitmap kangoo = BitmapFactory.decodeResource(getResources(),R.drawable.icon);
// canvas.drawBitmap (kangoo, 0, 200,null);
// works for logo
// Bitmap kangoo = BitmapFactory.decodeResource(getResources(),R.drawable.icon);
// c.drawBitmap (kangoo, 0, 200,null);
if(!(DrawingActivity.imagePath==null)){
c.drawBitmap(DrawingActivity.mBitmap, 0, 0, null);
}
commandManager.executeAll(c);
canvas.drawBitmap (mBitmap, 0, 0,null);
} finally {
mSurfaceHolder.unlockCanvasAndPost(canvas);
}
}