Ресурс анимации может определять один из двух типов анимации:
- Анимация свойств
-  Создает анимацию путем изменения значений свойств объекта в течение заданного периода с помощью Animator.
- Посмотреть анимацию
- Существует два типа анимации, которые можно создавать с помощью инфраструктуры просмотра анимации: -  Анимация анимации : создает анимацию, выполняя серию преобразований одного изображения с помощью Animation.
-  Кадровая анимация : создает анимацию, показывая последовательность изображений по порядку с помощью AnimationDrawable.
 
-  Анимация анимации : создает анимацию, выполняя серию преобразований одного изображения с помощью 
Анимация свойств
Анимация, определенная в XML, которая изменяет свойства целевого объекта, такие как цвет фона или значение альфа, в течение заданного периода времени.
- расположение файла:
-  res/animator/ filename .xml
 Имя файла используется в качестве идентификатора ресурса.
- тип данных скомпилированного ресурса:
-  Указатель ресурса на ValueAnimator,ObjectAnimatorилиAnimatorSet
- ссылка на ресурс:
-  В коде на основе Java или Kotlin: R.animator. filename
 В XML:@[ package :]animator/ filename
- синтаксис:
- <set android:ordering=["together" | "sequentially"]> <objectAnimator android:propertyName="string" android:duration="int" android:valueFrom="float | int | color" android:valueTo="float | int | color" android:startOffset="int" android:repeatCount="int" android:repeatMode=["restart" | "reverse"] android:valueType=["intType" | "floatType"]/> <animator android:duration="int" android:valueFrom="float | int | color" android:valueTo="float | int | color" android:startOffset="int" android:repeatCount="int" android:repeatMode=["restart" | "reverse"] android:valueType=["intType" | "floatType"]/> <set> ... </set> </set> - Файл должен иметь один корневой элемент: - <set>,- <objectAnimator>или- <valueAnimator>. Вы можете группировать элементы анимации внутри элемента- <set>, включая другие элементы- <set>.
- элементы:
- пример:
- XML-файл, сохраненный в - res/animator/property_animator.xml:- <set android:ordering="sequentially"> <set> <objectAnimator android:propertyName="x" android:duration="500" android:valueTo="400" android:valueType="intType"/> <objectAnimator android:propertyName="y" android:duration="500" android:valueTo="300" android:valueType="intType"/> </set> <objectAnimator android:propertyName="alpha" android:duration="500" android:valueTo="1f"/> </set> - Чтобы запустить эту анимацию, превратите ресурсы XML в своем коде в объект - AnimatorSet, а затем установите целевые объекты для всех анимаций перед запуском набора анимаций. Вызов- setTarget()для удобства устанавливает один целевой объект для всех дочерних элементов- AnimatorSet. Следующий код показывает, как это сделать:- Котлин- val set: AnimatorSet = AnimatorInflater.loadAnimator(myContext, R.animator.property_animator) .apply { setTarget(myObject) start() } - Ява- AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext, R.animator.property_animator); set.setTarget(myObject); set.start(); 
- см. также:
- Обзор анимации свойств
- Демонстрации API для примеров использования системы анимации свойств.
 
Посмотреть анимацию
Платформа анимации представления поддерживает как анимацию, так и покадровую анимацию, обе из которых объявлены в XML. В следующих разделах описано, как использовать оба метода.
Подростковая анимация
Анимация, определенная в XML, которая выполняет переходы к графике, такие как вращение, затухание, перемещение и растяжение.
- расположение файла:
-  res/anim/ filename .xml
 Имя файла используется в качестве идентификатора ресурса.
- тип данных скомпилированного ресурса:
-  Указатель ресурса на Animation
- ссылка на ресурс:
-  На Java: R.anim. filename
 В XML:@[ package :]anim/ filename
- синтаксис:
- <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@[package:]anim/interpolator_resource" android:shareInterpolator=["true" | "false"] > <alpha android:fromAlpha="float" android:toAlpha="float" /> <scale android:fromXScale="float" android:toXScale="float" android:fromYScale="float" android:toYScale="float" android:pivotX="float" android:pivotY="float" /> <translate android:fromXDelta="float" android:toXDelta="float" android:fromYDelta="float" android:toYDelta="float" /> <rotate android:fromDegrees="float" android:toDegrees="float" android:pivotX="float" android:pivotY="float" /> <set> ... </set> </set> - Файл должен иметь один корневой элемент: элемент - <alpha>,- <scale>,- <translate>,- <rotate>или- <set>, который содержит группу (или группы) других элементов анимации (включая вложенные- <set>элементы).
- элементы:
- пример:
- XML-файл, сохраненный в - res/anim/hyperspace_jump.xml:- <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <scale android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fromXScale="1.0" android:toXScale="1.4" android:fromYScale="1.0" android:toYScale="0.6" android:pivotX="50%" android:pivotY="50%" android:fillAfter="false" android:duration="700" /> <set android:interpolator="@android:anim/accelerate_interpolator" android:startOffset="700"> <scale android:fromXScale="1.4" android:toXScale="0.0" android:fromYScale="0.6" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:duration="400" /> <rotate android:fromDegrees="0" android:toDegrees="-45" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:duration="400" /> </set> </set> - Следующий код приложения применяет анимацию к - ImageViewи запускает анимацию:- Котлин- val image: ImageView = findViewById(R.id.image) val hyperspaceJump: Animation = AnimationUtils. - loadAnimation(this, R.anim.hyperspace_jump) image.- startAnimation(hyperspaceJump)- Ява- ImageView image = (ImageView) findViewById(R.id.image); Animation hyperspaceJump = AnimationUtils. - loadAnimation(this, R.anim.hyperspace_jump); image.- startAnimation(hyperspaceJump);
- см. также:
Интерполяторы
Интерполятор — это модификатор анимации, определенный в XML, который влияет на скорость изменения анимации. Это позволяет ускорять, замедлять, повторять, отражать существующие эффекты анимации и т. д.
 Интерполятор применяется к элементу анимации с помощью атрибута android:interpolator , значением которого является ссылка на ресурс интерполятора.
 Все интерполяторы, доступные в Android, являются подклассами класса Interpolator . Для каждого класса интерполятора Android включает общедоступный ресурс, на который вы можете ссылаться, чтобы применить интерполятор к анимации, используя атрибут android:interpolator . В следующей таблице указан ресурс, который будет использоваться для каждого интерполятора:
| Класс интерполятора | Идентификатор ресурса | 
|---|---|
| AccelerateDecelerateInterpolator | @android:anim/accelerate_decelerate_interpolator | 
| AccelerateInterpolator | @android:anim/accelerate_interpolator | 
| AnticipateInterpolator | @android:anim/anticipate_interpolator | 
| AnticipateOvershootInterpolator | @android:anim/anticipate_overshoot_interpolator | 
| BounceInterpolator | @android:anim/bounce_interpolator | 
| CycleInterpolator | @android:anim/cycle_interpolator | 
| DecelerateInterpolator | @android:anim/decelerate_interpolator | 
| LinearInterpolator | @android:anim/linear_interpolator | 
| OvershootInterpolator | @android:anim/overshoot_interpolator | 
 Вот как вы можете применить один из них с помощью атрибута android:interpolator :
<set android:interpolator="@android:anim/accelerate_interpolator"> ... </set>
Пользовательские интерполяторы
 Если вас не устраивают интерполяторы, предоставляемые платформой, вы можете создать собственный ресурс интерполятора с измененными атрибутами. Например, вы можете настроить скорость ускорения для AnticipateInterpolator или количество циклов для CycleInterpolator . Для этого вы создаете собственный ресурс интерполятора в XML-файле.
- расположение файла:
-  res/anim/ filename .xml
 Имя файла используется в качестве идентификатора ресурса.
- тип данных скомпилированного ресурса:
- Указатель ресурса на соответствующий объект интерполятора
- ссылка на ресурс:
-  В XML: @[ package :]anim/ filename
- синтаксис:
- <?xml version="1.0" encoding="utf-8"?> <InterpolatorName xmlns:android="http://schemas.android.com/apk/res/android" android:attribute_name="value" /> - Если вы не применяете никаких атрибутов, ваш интерполятор работает точно так же, как те, которые предоставляет платформа, перечисленные в предыдущей таблице. 
- элементы:
-  Обратите внимание, что каждая реализация Interpolator, определённая в XML, имеет имя, начинающееся со строчной буквы.
- пример:
- XML-файл, сохраненный в - res/anim/my_overshoot_interpolator.xml:- <?xml version="1.0" encoding="utf-8"?> <overshootInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:tension="7.0" /> - В этом XML-анимации применяется интерполятор: - <scale xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@anim/my_overshoot_interpolator" android:fromXScale="1.0" android:toXScale="3.0" android:fromYScale="1.0" android:toYScale="3.0" android:pivotX="50%" android:pivotY="50%" android:duration="700" /> 
Кадровая анимация
Анимация, определенная в XML, которая показывает последовательность изображений по порядку, как в фильме.
- расположение файла:
-  res/drawable/ filename .xml
 Имя файла используется в качестве идентификатора ресурса.
- тип данных скомпилированного ресурса:
-  Указатель ресурса на AnimationDrawable
- ссылка на ресурс:
-  В Java: R.drawable. filename
 В XML:@[ package :]drawable. filename
- синтаксис:
- <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot=["true" | "false"] > <item android:drawable="@[package:]drawable/drawable_resource_name" android:duration="integer" /> </animation-list> 
- элементы:
- пример:
- XML-файл сохранен в - res/drawable/rocket_thrust.xml:- <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/rocket_thrust1" android:duration="200" /> <item android:drawable="@drawable/rocket_thrust2" android:duration="200" /> <item android:drawable="@drawable/rocket_thrust3" android:duration="200" /> </animation-list> - Следующий код приложения устанавливает анимацию в качестве фона для - View, а затем воспроизводит анимацию:- Котлин- val rocketImage: ImageView = findViewById(R.id.rocket_image) rocketImage. - setBackgroundResource(R.drawable.rocket_thrust) val rocketAnimation = rocketImage.- backgroundif (rocketAnimation is- Animatable) { rocketAnimation.- start()}- Ява- ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image); rocketImage. - setBackgroundResource(R.drawable.rocket_thrust); rocketAnimation = rocketImage.- getBackground(); if (rocketAnimation instanceof- Animatable) { ((Animatable)rocketAnimation).- start(); }
- см. также:
