Android-анимации с использованием Java

Опубликовано: 5 Января, 2022

Анимация - это метод, при котором набор изображений объединяется определенным образом и обрабатывается, после чего они появляются как движущиеся изображения. Строительная анимация заставляет объекты на экране казаться живыми. В 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:

  1. Мигание - скрывает объект от 0,6 до 1 секунды.
  2. Слайд - переместите объект по вертикали или горизонтали к его оси.
  3. Повернуть - повернуть объект по часовой стрелке или против часовой стрелки.
  4. Масштаб - увеличение или уменьшение масштаба объекта по осям X и Y.

blinks.xml

<? xml version = "1.0" encoding = "utf-8" ?>
< set xmlns:android = " http://schemas.android.com/apk/res/android " >
< 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" ?>
< set xmlns:android = " http://schemas.android.com/apk/res/android " >
< rotate xmlns:android = " http://schemas.android.com/apk/res/android "
android:fromDegrees = "0"
android:toDegrees = "360"
android:pivotX = "50%"
android:pivotY = "50%"
android:duration = "2500" >
</ rotate >
< rotate xmlns:android = " http://schemas.android.com/apk/res/android "
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" ?>
< set xmlns:android = " http://schemas.android.com/apk/res/android " >
< scale xmlns:android = " http://schemas.android.com/apk/res/android "
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 >
< scale xmlns:android = " http://schemas.android.com/apk/res/android "
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 и многому другому, см. Полный курс подготовки к собеседованию .