Drawable Animation в приложении Android |
![]() |
Добавил(а) microsin |
Drawable Animation позволяет Вам загрузить последовательность Drawable-ресурсов один за другим, чтобы в результате получилась анимация. Это традиционный способ анимации, созданной с последовательностью разных картинок, проигрываемых в определенном порядке, наподобие фильма. Класс AnimationDrawable является базовым для анимации такого типа. Когда Вы задаете в коде фреймы анимации с использованием AnimationDrawable класса API, более просто это можно реализовать в одном файле XML, в котором перечислены фреймы, составляющие анимацию. Файл XML для такой анимации должен принадлежать директории res/drawable/ Вашего проекта Android. В этом случае в файле XML могут быть заданы инструкции по порядку воспроизведения и длительность для каждого фрейма в анимации. Файл XML состоит из элемента < animation-list > в качестве корневого и последовательных дочерних узлов < item >, которые задают каждый фрейм: drawable-ресурс для фрейма и длительность фрейма. Вот пример файла XML для Drawable-анимации: < animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true" > < 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 > Эта анимация состоит только из 3 фреймов (кадров). Установкой атрибута android:oneshot списка в true, анимация проиграется один раз и остановится на показе последнего кадра. Если этот атрибут установить в false, то анимация зациклится. С этим XML, сохраненным как файл rocket_thrust.xml в директории res/drawable/ проекта, он может быть добавлен как фоновое изображение для View и затем вызван для проигрывания. Вот пример Activity, в которой анимация добавлена к ImageView, и затем запускается, когда происходит касание экрана: AnimationDrawable rocketAnimation; Важное замечание - метод start() экземпляра AnimationDrawable не может быть вызван во время метода onCreate() Вашей Activity, потому что AnimationDrawable еще не полностью подключен к окну приложения. Если Вы хотите проиграть анимацию немедленно, без необходимости взаимодействия с пользователем, то Вы можете вызвать её из метода onWindowFocusChanged() Вашей Activity. Этот метод вызывается, когда окно приложения Android получает фокус. Дополнительную информацию о синтаксисе XML, доступных тегах и атрибутах см. [2], раздел Animation Resources. [Ссылки] 1. Drawable Animation site:developer.android.com. |