Работа С Анимацией. Анимированныйвекторныйdrawablecompat

В этой статье я хотел бы всем рассказать и показать на практике, как можно сделать анимацию в Android-приложении с помощью AnimatedVectorDrawableCompat, например свои пользовательские кнопки, ImageView, FloatingActionButton. На сегодняшний день информации по этому поводу в Интернете не так много, а точнее ее нет вообще.

Все, что мне удалось найти, это недавние нововведения, представленные Google, а именно: Статья из блога разработчиков Android Видео с Google I/O 2016 Справочник по Android Этого по сути недостаточно, чтобы понять, как применить AnimatedVectorDrawableCompat на практике.

Теперь перейдем к приложению.

На первом этапе нам нужно избавиться от того, что фреймворк превращает иконку в .

png. Начиная с версии 23.3.0 вы можете использовать .

xml, и для этого вам нужно добавить следующий флаг на уровень приложения Gradle:

  
  
  
  
  
  
   

android { .

defaultConfig { .

vectorDrawables.useSupportLibrary = true } }

И в зависимости от этого подключаем последнюю версию AppComapt:

dependencies { .

compile 'com.android.support:appcompat-v7:23.4.0' }

Далее в примере я буду использовать квадрат (синий), который своими углами слегка перекроет круг (красный).

В результате мы должны использовать 2 объекта и заставить их непрерывно двигаться вдоль осей X (квадрат) и Y (круг) соответственно.

Шаги: 1) Создайте файл ресурсов с возможностью рисования, вызовите файл icon.xml и поместите его в папку с возможностью рисования:

<Эxml version="1.0" encoding="utf-8"?> <vector xmlns:android="http://schemas.android.com/apk/res/android " android:width="120dp " android:height="120dp " android:viewportWidth="24.0 " android:viewportHeight="24.0 "> <group android:name="circle " android:scaleX=".

7 " android:scaleY=".

7 " android:pivotX="12 " android:pivotY="12 "> <path android:fillColor="#ff0000 " android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2z"/> </group> <group android:name="square " android:scaleX="1 " android:scaleY="1 " android:pivotX="12 " android:pivotY="12 "> <path android:fillColor="#FF0000ff " android:pathData="M6,6h12v12H6z"/ > </group> </vector>

2) Для хранения анимации в нашем проекте создаём папку animator — res/animator. Поместим в него два объекта и назовем их соответственно: а) круг.

xml:

<Эxml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android "> <objectAnimator android:propertyName="translateX " android:valueType="floatType " android:valueFrom="0 " android:valueTo="5 " android:repeatMode="reverse " android:repeatCount="infinite " android:duration="250 " /> </set>

б) Square.xml

<Эxml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android "> <objectAnimator android:propertyName="translateY " android:valueType="floatType " android:valueFrom="0 " android:valueTo="5 " android:repeatMode="reverse " android:repeatCount="infinite " android:duration="250 " /> </set>

Здесь мы указали, что объекты будут двигаться по осям X и Y, откуда они начнут движение, а также бесконечность движения.

Если у вас есть еще именованные группы, которые нужно анимировать, то их нужно создать в этом каталоге; соответственно в основном файле - icon.xml групп будет больше 3) Теперь создаём непосредственно анимированный файл, на который будем ссылаться в макете или в коде — res/drawable/anim_icon:

<Эxml version="1.0" encoding="utf-8"?> <animated-vector xmlns:android="http://schemas.android.com/apk/res/android " android:drawable="@drawable/icon "> <target android:name="square " android:animation="@animator/square " /> <target android:name="circle " android:animation="@animator/circle " /> </animated-vector>

Примечание: Android Studio подчеркивает Animation-вектор красным цветом (если минимальная версия проекта меньше 21), но если вы подключили флаг, как указано в начале, все будет работать.

4) Теперь мы можем получить доступ к анимированным векторам в формате XML. Это может быть ImageView, ImageButton, FloatingActinonButton:

<LinearLayout .

xmlns:app="http://schemas.android.com/apk/res-auto"/ > <ImageView app:srcCompat="@drawable/anim_icon "

Теги: #разработка для Android #Android Studio #анимация #разработка для мобильных устройств #Android #разработка для Android #Разработка мобильных приложений #Разработка для Android

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.