我正在尝试使用AnimatedVectorDrawable实现圆形加载器类型的动画
这是我AnimatedVectorDrawable的XML代码:
vector_example.xml
<animated-vector
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt">
<aapt:attr name="android:drawable">
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="64dp"
android:height="64dp"
android:viewportWidth="600"
android:viewportHeight="600">
<group
android:name="rotationGroup"
android:pivotX="300"
android:pivotY="300"
android:rotation="45.0" >
<path
android:name="vectorPath"
android:fillColor="@color/colorPrimary"
android:pathData="some path data" />
</group>
<!--<group-->
<!--android:name="stationaryGroup">-->
<!--<path-->
<!--android:name="somePath"-->
<!--android:fillColor="#FFEFEFEF"-->
<!--android:pathData="some path data"/>-->
<!--</group>-->
</vector>
</aapt:attr>
<target android:name="rotationGroup">
<aapt:attr name="android:animation">
<objectAnimator
android:propertyName="rotation"
android:valueFrom="0"
android:valueTo="360"
android:repeatCount="infinite"
android:duration="1000"
android:interpolator="@android:interpolator/linear" />
</aapt:attr>
</target>
</animated-vector>
我面临的问题是,在我的较新设备中,它运行正常,但是在我的Lollipop设备中,当我进入活动时,它有时会冻结并且根本不动。当我反复重新进入活动时,动画看起来好像已经进步了一点,但仍然静止不动。偶尔会正常工作。
其他相关代码:
活动
final ImageView imageView2 = findViewById(R.id.sampleview);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
final AnimatedVectorDrawable e = (AnimatedVectorDrawable) getDrawable(R.drawable.vector_example);
imageView2.setImageDrawable(e);
e.start();
}
build.gradle
vectorDrawables.useSupportLibrary = true
参考: