Android-анимации с использованием Java
Анимация - это метод, при котором набор изображений объединяется определенным образом и обрабатывается, после чего они появляются как движущиеся изображения. Строительная анимация заставляет объекты на экране казаться живыми. В Android есть несколько инструментов, которые помогут вам относительно легко создавать анимацию. Итак, в этой статье давайте научимся создавать анимацию для Android с помощью Java.
Таблица атрибутов
АТРИБУТЫ XML | ОПИСАНИЕ |
---|---|
android: id | Устанавливает уникальный идентификатор представления |
android: продолжительность | Используется для указания продолжительности анимации |
android: fromDegrees | Исходное угловое положение (в градусах) |
android: toDegrees | Конечное угловое положение (в градусах) |
android: fromXScale | Смещение начального размера X |
android: toXScale | Окончание смещения размера X |
android: fromYScale | Смещение начального размера Y |
android: toYScale | Окончание смещения размера Y |
android: fromAlpha | Начальное альфа-значение для анимации (1.0 означает полностью непрозрачный, а 0.0 означает полностью прозрачный) |
android: toAlpha | Конечное альфа-значение |
android: fromYDelta | Изменение координаты Y для применения в начале анимации |
android: toYDelta | Изменение координаты Y, которое будет применено в конце анимации |
android: pivotX | Представляет координаты оси X для увеличения от начальной точки |
android: pivotY | Представляет координаты оси Y для увеличения от начальной точки |
android: интерполятор | Он определяет скорость изменения анимации. |
android: startOffset | Задержка возникает при запуске анимации (в мс) после достижения времени начала |
Как добавить анимацию в Android с помощью Java
Шаг 1. Создайте новый проект
- Запустите Android Studio (версия> 2.2)
- Перейдите в File -> New -> New Project.
- Выберите «Пустое действие» и нажмите «Далее».
- Выберите минимальный SDK как 21
- Выберите язык как Java и нажмите кнопку «Готово».
- Измените следующие файлы XML и java.
Шаг 2. Измените файл activity_main.xml
В XML-файле мы добавили ImageView, TextView и Button внутри RelativeLayout.
XML
<? xml version = "1.0" encoding = "utf-8" ?> < RelativeLayout android:layout_width = "match_parent" android:id = "@+id/RL1" android:layout_height = "match_parent" tools:context = ".MainActivity" > < ImageView android:id = "@+id/imageView1" android:layout_width = "200dp" android:layout_height = "150dp" android:layout_below = "@id/textView0" android:layout_centerHorizontal = "true" android:layout_marginTop = "100dp" android:visibility = "visible" android:src = "@drawable/logo2" /> < TextView android:id = "@+id/textView1" android:layout_width = "match_parent" android:layout_height = "wrap_content" android:text = "4 common animations in android" android:layout_below = "@id/imageView1" android:layout_marginTop = "50dp" android:layout_centerHorizontal = "true" android:gravity = "center" android:fontFamily = "sans-serif" android:textSize = "50px" /> < Button android:id = "@+id/button1" android:layout_width = "150dp" android:layout_height = "wrap_content" android:text = "Blink" android:layout_below = "@id/textView1" android:layout_marginLeft = "50dp" android:layout_marginTop = "40dp" /> < Button android:id = "@+id/button2" android:layout_width = "150dp" android:layout_height = "wrap_content" android:text = "Slide" android:layout_below = "@id/textView1" android:layout_alignParentRight = "true" android:layout_marginRight = "50dp" android:layout_marginTop = "40dp" /> < Button android:id = "@+id/button3" android:layout_width = "150dp" android:layout_height = "wrap_content" android:text = "Rotate" android:layout_below = "@id/button1" android:layout_marginLeft = "50dp" android:layout_marginTop = "30dp" /> < Button android:id = "@+id/button4" android:layout_width = "150dp" android:layout_height = "wrap_content" android:text = "Zoom" android:layout_below = "@id/button2" android:layout_alignParentRight = "true" android:layout_marginRight = "50dp" android:layout_marginTop = "30dp" /> </ RelativeLayout > |
Шаг 3. Добавьте эти XML-файлы в каталог анима.
После изменения макета мы создадим XML-файлы для анимации. Итак, сначала мы создадим папку с именем anim . В эту папку мы будем добавлять файлы XML, которые будут использоваться для создания анимации. Для этого перейдите в app / res, щелкните правой кнопкой мыши, затем выберите Android Resource Directory и назовите его anim.
Некоторые распространенные типы анимации в Android:
- Мигание - скрывает объект от 0,6 до 1 секунды.
- Слайд - переместите объект по вертикали или горизонтали к его оси.
- Повернуть - повернуть объект по часовой стрелке или против часовой стрелки.
- Масштаб - увеличение или уменьшение масштаба объекта по осям X и Y.
blinks.xml
<? xml version = "1.0" encoding = "utf-8" ?> < alpha android:fromAlpha = "0.0" android:toAlpha = "1.0" android:interpolator = "@android:anim/accelerate_interpolator" android:duration = "700" android:repeatMode = "reverse" android:repeatCount = "infinite" /> </ set > |
rotate.xml
<? xml version = "1.0" encoding = "utf-8" ?> android:fromDegrees = "0" android:toDegrees = "360" android:pivotX = "50%" android:pivotY = "50%" android:duration = "2500" > </ rotate > android:startOffset = "5000" android:fromDegrees = "360" android:toDegrees = "0" android:pivotX = "50%" android:pivotY = "50%" android:duration = "2500" > </ rotate > </ set > |
slides.xml
<? xml version = "1.0" encoding = "utf-8" ?> android:fillAfter = "true" > < scale android:duration = "500" android:fromXScale = "1.0" android:fromYScale = "1.0" android:interpolator = "@android:anim/linear_interpolator" android:toXScale = "1.0" android:toYScale = "0.0" /> </ set > |
zoom.xml
<? xml version = "1.0" encoding = "utf-8" ?> android:fromXScale = "0.5" android:toXScale = "3.0" android:fromYScale = "0.5" android:toYScale = "3.0" android:duration = "4000" android:pivotX = "50%" android:pivotY = "50%" > </ scale > android:startOffset = "5000" android:fromXScale = "3.0" android:toXScale = "0.5" android:fromYScale = "3.0" android:toYScale = "0.5" android:duration = "4000" android:pivotX = "50%" android:pivotY = "50%" > </ scale > </ set > |
Шаг 4. Измените MainActivity.java
Чтобы выполнить анимацию в android, мы должны вызвать статическую функцию loadAnimation () класса AnimationUtils . Мы получаем результат в экземпляре объекта анимации. Синтаксис для создания объекта анимации:
Animation object = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.ANIMATIONFILE);
Чтобы применить приведенную выше анимацию к объекту (скажем, к изображению), мы должны вызвать метод startAnimation () объекта. Синтаксис для вызова метода:
ImageView image = findViewById(R.id.imageID);
image.startAnimation(object);
Методы класса анимации: Метод Описание startAnimation (объект) Запускает анимацию setDuration (длительная) Устанавливает продолжительность анимации getDuration () Получает продолжительность анимации конец() Завершает анимацию Отмена() Отменяет анимацию
Джава
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { ImageView logo; Button blink, slide, rotate, zoom; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); // GFG logo logo = findViewById(R.id.imageView1); // blink button blink = findViewById(R.id.button1); // slide button slide = findViewById(R.id.button2); // rotate button rotate = findViewById(R.id.button3); // zoom button zoom = findViewById(R.id.button4); // blink button listener blink.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // call a static function loadAnimation() // of the class AnimationUtils Animation object = AnimationUtils .loadAnimation( getApplicationContext(), // blink file is in anim folder R.anim.blinks); // call the startAnimation method logo.startAnimation(object); } }); // slide button listener slide.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // call a static function loadAnimation() // of the class AnimationUtils Animation object = AnimationUtils .loadAnimation( getApplicationContext(), // slide file is in anim folder R.anim.slide); // call the startAnimation method logo.startAnimation(object); } }); // rotate button listener rotate.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // call a static function loadAnimation() // of the class AnimationUtils Animation object = AnimationUtils .loadAnimation( getApplicationContext(), // rotate file is in anim folder R.anim.rotate); // call the startAnimation method logo.startAnimation(object); } }); // zoom button listener zoom.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // call a static function loadAnimation() // of the class AnimationUtils Animation object = AnimationUtils .loadAnimation( getApplicationContext(), // zoom file is in anim folder R.anim.zoom); // call the startAnimation method logo.startAnimation(object); } }); } } |
Выход: запустить на эмуляторе
Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .