视图在RotationY动画结束时消失

时间:2014-05-15 15:32:52

标签: android animation android-animation

我正在尝试整理一个光滑的动画,其中占据大部分屏幕空间的视图旋转以显示背面的另一个视图:

rotatingView.animate().rotationY(90)
            .setDuration(250)
            .setInterpolator(new AccelerateInterpolator())
            .withEndAction( /* Runnable that sets up the rear side of the view,
                               then rotates Y another 90 degrees */);

问题是,通过此动画的大约80%,视图消失。直到下半场进入大约20%时,视图才会重新出现。换句话说,它在11点消失,并在1点再次出现。这是为什么?

1 个答案:

答案 0 :(得分:0)

我终于偶然发现了这类问题的答案。使用setCameraDistance(),但note that

  

距离以“深度像素”表示。默认距离取决于屏幕密度。例如,在中密度显示器上,默认距离为1280.在高密度显示器上,默认距离为1920.

因此,要将摄像机“提升”到视图的近边缘不会剪切它的位置,请将距离设置为“默认”距离的几倍。在我使用多个平板电脑屏幕的情况下,需要4000f的值。有关setCameraDistance()参数计算的详细信息,请参阅the link

您可能希望将setCameraDistance()clipToPadding="false"clipChildren="false"合并到XML文件中;这些控制掩盖了另一个视图。

此外,我怀疑YMMV跨越不同的Android版本和供应商。