我想弄清楚如何将两个画布分层,其中一个有位图,第二个是我实际绘制的。
基本上我所拥有的是:
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
?
我确实看过这个问题,但我认为它不相似:
答案 0 :(得分:0)
解决方案比我预期的简单。
我有一个菜单选项,允许用户绘制透明图像,这样只有图像的黑线可见,图像的其余部分是透明的。
通过这样做,然后我可以绘制用户正在绘制的位图,首先,然后使用大多数透明颜色绘制图像。
这使黑线始终可见。
我可能需要使用PorterDuff xfer模式才能让它看起来更好,但这符合我的初始要求。
我很惊讶将可绘制的图像放在背景上并不起作用。
我在自定义视图中执行所有操作。