1

我试图弄清楚如何将两个画布分层,其中一个有一个位图,第二个是我实际绘制的。

所以基本上我所拥有的是:

    Bitmap newBitmap = Bitmap.createBitmap(img.getWidth(), img.getHeight(),
            Bitmap.Config.RGB_565);
    Canvas newCanvas = new Canvas();
    newCanvas.setBitmap(newBitmap);
    if (img != null) {
        newCanvas.drawBitmap(img, 0, 0, null);
    }
    mBitmap = newBitmap;
    imageCanvas = newCanvas;

    mCanvas = new Canvas();
    drawBitmap = Bitmap.createBitmap(img.getWidth(), img.getHeight(),
            Bitmap.Config.RGB_565);
    mCanvas.setBitmap(drawBitmap);

mCanvas用户将在哪里绘制,并且是imageCanvas绘制位图的位置。

图像是黑白的,我希望黑线始终显示出来,所以我希望它作为堆栈的顶部。

看来我需要确保图像的白色部分需要是透明的,当我加载图像时我可能需要这样做,因为期望它是这样的期望太多了。

那么,如何将这两个画布堆叠在同一个视图中,并drawLine在底部画布上显示它们的位置?

我确实看过这个问题,但我认为它不相似:

分层图像加画布

4

1 回答 1

0

解决方案比我预期的要简单。

我有一个菜单选项,允许用户绘制透明图像,这样只有图像的黑线可见,图像的其余部分是透明的。

通过这样做,我可以先绘制用户正在绘制的位图,然后使用大部分透明颜色绘制图像。

这使得黑线始终可见。

我可能需要使用 PorterDuff xfer 模式让它看起来更好,但这符合我最初的要求。

我很惊讶将可绘制图像放在背景上不起作用。

我在自定义视图中完成所有这些操作。

于 2011-07-15T03:56:11.363 回答