0
工作,我需要實現的塗料應用橡皮擦,具有帆布:橡皮擦PorterDuff.Mode.CLEAR不是在畫布
Canvas canvas = new Canvas(bitmap);
位在哪裏是一個可變的位圖。 我寫具有以下油漆在畫布上:
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setColor(0xFF000000);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(50);
然後當我要刪除我做到以下幾點:
mPaint.setMaskFilter(null);
mPaint.setColor(Color.TRANSPARENT);
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
但它不工作。如何在不使用porterDuff模式的情況下執行擦除操作,或者如何更改代碼以使其可以正常工作。
像這樣,它會畫筆,就像筆。但顏色不是黑色,而更多是灰色。
編輯:我嘗試了其他的東西,我將位圖值保存在另一個位圖中,以便當我按下擦除鍵時,我會返回值。這工作,並刪除圖紙,但問題是,在此之後,如果我想繪製的東西,我畫,但它消失。這是因爲位圖與位圖是不一樣的:
Canvas canvas = new Canvas(bitmap);
?
我有同樣的問題,你介意分享你的代碼嗎?謝謝 – Chris
好的,這是代碼中最重要的部分,代碼與其中的所有內容相關:http://pastebin.com/6RjnZn7R –