Я следовал этому руководству и создал свой первый анимированный вектор в android studio.
мой вектор:
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt" android:width="491.4dp" android:height="297.83dp" android:viewportWidth="491.4" android:viewportHeight="297.83" android:drawable="@drawable/ic_logo"> <target android:name="name1"> <aapt:attr name="android:animation"> <objectAnimator android:duration="2000" android:repeatCount="-1" android:repeatMode="reverse"> <propertyValuesHolder android:propertyName="alpha" > <keyframe android:fraction="0" android:value="1f" /> <keyframe android:fraction=".5" android:value="0f" /> <keyframe android:fraction="1" android:value="1f" /> </propertyValuesHolder> </objectAnimator> </aapt:attr> </target> <target android:name="name2"> <aapt:attr name="android:animation"> <objectAnimator android:duration="2000" android:repeatCount="-1" android:repeatMode="reverse"> <propertyValuesHolder android:propertyName="alpha" > <keyframe android:fraction="0" android:value="1f" /> <keyframe android:fraction=".5" android:value="0f" /> <keyframe android:fraction="1" android:value="1f" /> </propertyValuesHolder> </objectAnimator> </aapt:attr> </target> </animated-vector>
Кажется, мне нужно инициализировать это в действии, чтобы заставить анимацию работать. Но я не нашел никакого руководства о том, как запустить его в Kotlin. Может ли кто-нибудь мне помочь?
Это зависит от того, как вы применяете этот Drawable. Если он установлен в ImageView, вы можете использовать
(imageView.drawable as? Animatable)?.start()
Если это фон представления, вы можете использовать
(view.background as? Animatable)?.start()
Предполагается, что есть изображение с этим вектором, на котором можно рисовать
ImageView imageView = view.findViewById(R.id.animatedImage); AnimatedVectorDrawable drawable = (AnimatedVectorDrawable)imageView.getDrawable(); drawable.start(); //this starts the animation drawable.setVisible(true,true); //this also starts the animation from start