我正在开发一个 Android 应用程序,它有一个 Canvas,它是使用新的 Canvas(bitmap) 函数创建的,用户可以用他们的手指在上面绘图。我遇到的问题是我找不到允许用户使用手指删除线条的方法。我搜索了 Google 并查看了示例 FingerPaint 应用程序,但他们使用以下方式删除线条:
setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
似乎只适用于 Canvas 的纯色。我已经编写了代码来执行撤消/重做功能,但如果能够只删除部分行而不是撤消所有更改,那就太好了。如果有人有任何想法我可以尝试,我将不胜感激。
最佳答案
public void resetBitmapCanvasAndPath() {
// TODO Auto-generated method stub
mDrawingUtilities.mBitmap = Bitmap.createBitmap(Constants.SCREEN_WIDTH,Constants.SCREEN_HEIGHT ,
Bitmap.Config.ARGB_8888);
//Log.d("BITMAP","Restoring...");
//mBitmap=BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
mDrawingUtilities.mCanvas = new Canvas(mDrawingUtilities.mBitmap);
mDrawingUtilities.mPath = new Path();
}
重置位图。
关于android - 删除以位图为背景的 Canvas 上的线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13292317/