在setRotationX / setRotationY之后宽度/高度增加。如何获得新的宽度和高度?

时间:2016-01-29 14:24:02

标签: android

以下是一个例子:

黑色图像有setRotationX(45)。在RotationX = 0时,黑色图像的宽度与红色图像的宽度相同,但在旋转时,其宽度会增加。

如果我使用getWidth,则任何rotationX值的值都相同。

另一个问题是宽度因屏幕尺寸而异。例如,在平板电脑上,黑色视图看起来不如红色视图宽。

我找到解决此问题的唯一方法是获取旋转视图的宽度,然后使用scaleX。

2 个答案:

答案 0 :(得分:0)

这可以使用三角法来实现。它看起来像|sin(theta * 2) / 2| + 1(对于宽度为1的正方形)。我是从头顶做这个,所以要做出准确的调整,包括添加考虑宽度和高度的功能部分。

答案 1 :(得分:0)

我意识到我的做法是错误的。对于我想要实现的目标,我必须使用pivotx和pivoty。默认情况下,pivotx和pivoty设置为50%,这就是为什么会发生这种情况。解决方案是使用(pivotx = 50%和pivoty = 0%)或(pivotx = 50%和pivoty = 100%)