使用canvas.scale进行Android画布翻转



我有一个小问题。:)在我的新壁纸中,我正在水平翻转画布带有:

c.scale(-1f, 1f, screenWidth* 0.5f, screenHeight* 0.5f);
drawFlipped();
c.scale(-1f, 1f, screenWidth* 0.5f, screenHeight* 0.5f);

这一切都很好,但我碰巧也有这样的活动其中用户可以点击定义为Rect的不同移动对象。

但是当矩形绘制在翻转的画布上时,x,y坐标不正确。它仍然在镜子里,我理解这一点,因为我翻转绘制精灵后将画布放回。

我的问题是:如何从屏幕?我尝试过:Screenwidth-object.x-object.width,但没有太大帮助:(

这对我有效:

int screenWidth = getScreenWidth();
Rect newCoordinates = new Rect(object.getRect()); //copies old coordinates
newCoordinates.right = screenWidth - object.getRect().left; //switch right and left since the Rect is being mirrored
newCoordinates.left = screenWidth - object.getRect().right;
object.setRect(newCoordinates);

最新更新