android - 删除以位图为背景的 Canvas 上的线条

标签 android bitmap line android-canvas erase

我正在开发一个 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/

相关文章:

java - 为什么我的应用占用这么多内存?

java - 最有效的图像显示方式

C 逐行读取文件

javascript - 如何突破 Canvas 的最大行数限制?

java - 安卓3.3.0更新,错误: Cause: invalid type code: 68

java - Android 应用程序因单击按钮而崩溃

android - 如何减小透明位图大小(不是尺寸)

android - YouTubePlayer 在某些设备上有时会在 1 秒后暂停

java - 使用 "for loop"添加数组值时发生异常

javascript - 是否有任何特别注意简洁的 JSON pretty-print ?