我有一些非常简单的动画,可以完美地与ViewFlipper一起工作,但如果我尝试将它们设置在AdapterViewFlipper in/out上,我会得到一个运行时错误"未知动画器名称翻译"。在查看各自的方法时,看起来ViewFlipper期望一个ViewAnimation,而AdapterViewFlipper期望一个AdapterViewAnimation。这两个api在其他方面是相同的,并且都没有错误。下面是其中一个动画的xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:fromXDelta="0%" android:toXDelta="-100%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="800"/>
</set>
我把它设置在鳍上,像
vf.setOutAnimation(this, R.anim.out_to_left);
我可以猜到这可能意味着我不能使用翻译,类型,但我如何完成相同的动画?蹩脚的…
在这里找到答案:https://stackoverflow.com/a/26197426/1534666
看起来ViewFlipperAdapter需要一个objectAnimator,而不是一个set。
示例left_in.xml,在animator文件夹
中声明<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="x"
android:valueType="floatType"
android:valueFrom="-1500"
android:valueTo="0"
android:duration="600"/>