我想让我的图像水平翻转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 的模拟器上运行我的应用程序时,翻转图像显示出尴尬的效果。从图像中可以看到,有时翻转时,垂直的一侧比另一侧长,产生拉伸效果,这不是我想要的。有什么可以帮助消除这种影响吗?
这种效应称为透视畸变。这正是setCameraDistance() http://developer.android.com/reference/android/view/View.html#setCameraDistance%28float%29 is for:
设置沿 Z 轴(与 X/Y 平面正交)的距离
哪些视图被绘制)从相机到该视图。相机的
距离影响 3D 变换,例如围绕
X 轴和 Y 轴。如果旋转 X 或旋转 Y 属性发生更改并且
这个视图很大(超过屏幕大小的一半),它是
建议始终使用大于
该视图的高度(X 轴旋转)或宽度(Y 轴旋转)。
相机距视平面的距离会影响
绕 x 旋转时视图的透视变形
或 y 轴。例如,较大的距离将导致较大的
视角,不会有太大的透视畸变
旋转时的视图。短距离可能会造成更多
旋转时的透视变形,也可能导致一些
如果旋转视图最终部分位于视图后面,则绘制伪影
相机(这就是为什么建议至少使用一个距离
如果要旋转视图,则为视图的大小。)
您可能想要修改该值,具体取决于视图的尺寸和您想要实现的视觉效果。我得到了一个很好的结果:
view.setCameraDistance(10 * view.getWidth());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)