繁体   English   中英

Android:在另一个之上绘制一个 bitmap,应用矩阵

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM