【问题标题】:Android - Flip Animation not flipping smoothlyAndroid - 翻转动画不能顺利翻转
【发布时间】:2014-07-06 04:31:55
【问题描述】:

我想让我的图像水平翻转 4 次,同时缩小它。

我有如下翻转代码:

ObjectAnimator flipAnimation = ObjectAnimator.ofFloat(view, "rotationY", 0.0f, 1440f);
flipAnimation.setDuration(4000);
flipAnimation.start();

我在 scale_down.xml 中有以下代码用于缩小:

<scale
        android:duration="4000"
        android:fromXScale="1"
        android:fromYScale="1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0.1"
        android:toYScale="0.1" >
    </scale>

但是,当我在 eclipse 中的模拟器上运行我的应用程序时,翻转图像显示出一种尴尬的效果。从图片中可以看出,有时在翻转时,垂直的一侧比另一侧长,产生拉伸效果,这不是我想要的。有什么办法可以消除这种影响吗?

【问题讨论】:

    标签: android animation flip scaletransform


    【解决方案1】:

    这种效果称为透视失真。这正是setCameraDistance() 的用途:

    设置沿 Z 轴的距离(垂直于 X/Y 平面 哪些视图被绘制)从相机到这个视图。相机的 距离会影响 3D 变换,例如围绕 X 和 Y 轴。如果更改了 rotationX 或 rotationY 属性并且 这个视图很大(超过屏幕大小的一半),它是 建议始终使用大于 此视图的高度(X 轴旋转)或宽度(Y 轴旋转)。

    相机与视图平面的距离可能会影响 围绕 x 旋转时视图的透视变形 或 y 轴。例如,一个大的距离将导致一个大的 视角,不会有太大的透视畸变 旋转时的视图。短距离可能会导致更多 旋转时的透视变形,也可能导致一些 如果旋转后的视图部分位于 相机(这就是为什么建议至少使用距离 就视图的大小而言,如果要旋转视图。)

    您可能想要调整值,具体取决于视图的尺寸和您想要实现的视觉效果。我得到了一个很好的结果:

    view.setCameraDistance(10 * view.getWidth());
    

    【讨论】:

    • 太棒了!这就是我要的。并感谢您的信息。设置数字 = 10 已经很令人满意了。
    猜你喜欢
    • 2011-03-22
    • 2013-12-21
    • 2017-07-06
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多