[英]Android: Draw a bitmap on top of another, matrix applied
我有一个 imageview,它使用矩阵来缩放/拖动图像。 现在我想覆盖另一个图像。 矩阵变换应应用于背景和叠加的组合。
我确实覆盖了 onDraw 并使用了
canvas.drawBitmap(overlay, matrix, null);
而叠加是新的叠加,矩阵是当前应用的矩阵。 这工作正常。 不幸的是,我无法指定叠加层应出现在背景顶部的偏移量。 这有效
canvas.drawBitmap(overlay, 50, 10, null);
但是,一旦我再次绘制并缩放背景,覆盖层仍会保留在 position 上...
如何在绘制应用矩阵的 bitmap 时完成偏移?
问候
您可能需要创建一个适当大小的新 bitmap,您的叠加层将与矩阵变换一起保存。 就像是:
Bitmap overlay2 = Bitmap.createBitmap(....)
Canvas c2 = new Canvas(overlay2);
c2.drawBitmap(overlay, matrix, null);
canvas.drawBitmap(overlay2, 50, 10, null);
另一种可能更好的方法是做 canvas.translate:
canvas.save();
canvas.translate(50,10);
canvas.drawBitmap(overlay, matrix, null);
canvas.restore();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.