其实我有三个问题:
- 是在位图上绘制图像还是创建位图作为资源然后在位图上绘制更好?性能方面,哪个更好?
- 如果我想在位图上绘制透明的东西,我该怎么做?
- 如果我想将一个透明位图叠加到另一个上,我该怎么做?
抱歉,列表太长了,但为了学习,我想探索这两种方法。
最佳答案
我不敢相信还没有人回答这个问题! SO上罕见的出现!
1
这个问题对我来说不太有意义。但我会给它一个刺。 如果您要询问直接绘制到 Canvas (多边形、阴影、文本等)与加载位图并将其blitting 到 Canvas 上,这将取决于您的绘图的复杂性。 随着绘图变得越来越复杂,所需的 CPU 时间将相应增加。 然而,位图在 Canvas 上的位图传输始终是一个常数时间,与位图的大小成正比。
2
在不知道什么是“某事”的情况下,我如何向您展示如何做到这一点? 您应该能够从#3 的答案中找出#2。
3
假设:
- bmp1 大于 bmp2。
您希望它们都从左上角重叠。
private Bitmap overlay(Bitmap bmp1, Bitmap bmp2) { Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig()); Canvas canvas = new Canvas(bmOverlay); canvas.drawBitmap(bmp1, new Matrix(), null); canvas.drawBitmap(bmp2, new Matrix(), null); return bmOverlay; }
关于Android:如何覆盖位图并在位图上绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1540272/