как запустить анимированный вектор в kotlin - PullRequest
0 голосов
/ 13 июля 2020

Я следовал этому руководству и создал свой первый анимированный вектор в 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. Может ли кто-нибудь мне помочь?

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Это зависит от того, как вы применяете этот Drawable. Если он установлен в ImageView, вы можете использовать

(imageView.drawable as? Animatable)?.start()

Если это фон представления, вы можете использовать

(view.background as? Animatable)?.start()
0 голосов
/ 13 июля 2020

Предполагается, что есть изображение с этим вектором, на котором можно рисовать

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...