更新:已找到解决方案!向下滚动查看我的被接受答案!
我想要对一个图像的多个元素进行动画,并将动画链接到ViewPagers位置(因此多个元素会随着当前正在拖动的页面而变形或飞入/飞出)。
那么,有没有一种精确控制动画当前帧的方法?例如,假设我有这个设置:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="800"
android:propertyName="scaleY"
android:valueFrom="0"
android:valueTo="1" />
<objectAnimator
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="800"
android:propertyName="scaleX"
android:valueFrom="0"
android:valueTo="1" />
<objectAnimator
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="800"
android:propertyName="rotation"
android:valueFrom="0"
android:valueTo="360" />
</set>
动画矢量文件:
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/pre_signup_1" >
<target
android:name="plus_button"
android:animation="@anim/pre_signup_1_plus_container" />
<target
android:name="plus"
android:animation="@anim/pre_signup_1_plus_sign" />
</animated-vector>
运行动画的Java代码:
ImageView mImage1 = (ImageView) findViewById(R.id.image_1);
AnimatedVectorDrawableCompat animated = (AnimatedVectorDrawableCompat) mImage1.getDrawable();
animated.start();
是否有一种方法可以像setCurrentDuration(400)
这样控制动画,这将预计将动画的当前状态设置为其一半?也许有一种方法将矢量可绘制对象拆分成层,并以编程方式对它们进行动画处理?提前致谢!
VectorDrawableCompat.VGroup
。 - Vipul AsrisetCurrentDuration(400)
一样控制 AnimatedVectorDrawable 的当前状态。您只能使用setScale()
、setRotation()
或setTranslate()
。例如,您不能根据滑动进度强制执行动画的当前状态。 - DawidJ