Я пишу приложение для Android, и я бы хотел сыграть простую анимацию SVG. Я знаю, что Android не предлагает поддержку SVG; какие у меня варианты?
Android и воспроизведение анимации SVG
Ответ 1
- Возьмите изображение SVG и преобразуйте его в VectorDrawable здесь
-
Добавьте загруженный файл XML в свой проект и посмотрите, как он выглядит. Вот пример VectorDrawable, подготовленный для анимации вращения и анимации пути:
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="64dp" android:width="64dp" android:viewportHeight="600" android:viewportWidth="600" > <group android:name="rotationGroup" android:pivotX="300.0" android:pivotY="300.0" android:rotation="45.0" > <path android:name="v" android:fillColor="#000000" android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" /> </group>
3 Теперь создайте AnimatedVectorDrawable, где вы ссылаетесь на rotGroup и морфинг пути в созданном VectorDrawable
<?xml version="1.0" encoding="UTF-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/vectordrawable">
<target android:name="rotationGroup" android:animation="@anim/rotation" />
<target android:name="v" android:animation="@anim/path_morph" />
</animated-vector>
4 Создайте два аниматора для AnimatedVectorDrawable:
<objectAnimator
android:duration="6000"
android:propertyName="rotation"
android:valueFrom="0"
android:valueTo="360" />
и:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:duration="3000"
android:propertyName="pathData"
android:valueFrom="M300,70 l 0,-70 70,70 0,0 -70,70z"
android:valueTo="M300,70 l 0,-70 70,0 0,140 -70,0 z"
android:valueType="pathType"/>
</set>
(Также можно определить все это в одном файле, см. docs здесь)
Один из способов начать анимацию - получить доступный из представления и запустить start()
.
Ответ 2
Используйте VectorDrawable. если цель находится под Lollipop, используйте библиотеку поддержки.
Ответ 3
Начиная с Android Lollipop (API уровня 21), можно реализовать с помощью AnimatedVectorDrawable.
Есть также инструменты, которые помогут анимировать векторный переносимый shapeshifter и сообщение в блоге от автора инструмента шейпинга Введение в методы анимации значков.