【发布时间】:2019-04-23 11:32:58
【问题描述】:
我使用 View.setRotationY() 根据设备的方向旋转我的视图。纵向时一切正常。但是当设备旋转时,布局的背景会变形。
代码:
if(under == RecyclerView.NO_POSITION){
aboveBinding.vContainerLeft.rotationY = 0F
aboveBinding.vContainerRight.rotationY = 0F
}else if(under == above - 1){
val half = width / 2
val degrees = 90 * ((width - offset).toFloat() / half)
aboveBinding.vContainerLeft.pivotX = aboveBinding.vContainerLeft.width.toFloat()
aboveBinding.vContainerLeft.rotationY = degrees
aboveBinding.vContainerRight.rotationY = 0F
}else{
val half = width / 2
val degrees = -90 * (offset.toFloat() / half)
aboveBinding.vContainerRight.pivotX = 0F
aboveBinding.vContainerLeft.rotationY = 0F
aboveBinding.vContainerRight.rotationY = degrees
}
当我使用 View.setRotationY() 方法设置 -60 度和 -90 度之间的角度时,我希望背景看起来像这样angle in 0 ~ -60。但是,结果是这样的angle in -60 ~ -90
同样,当我将角度设置在 75 度和 90 度之间时,我希望背景看起来像这样angle in 0 ~ 75。但是,结果是这样的angle in 75 ~ 90
我该如何纠正这个..?
【问题讨论】:
-
截图根本看不清楚,尝试发布实际截图和代码的sn-p,涵盖您正在尝试做的事情
-
@y.allam 谢谢你的建议,我修改了我的问题
-
这个问题也和View的pivot有关;当我使用默认枢轴(视图中心)时,它会很好地工作
标签: android android-layout orientation landscape rotatetransform