Анимация элементов экрана.

Для того что бы предать более привлекательный вид нашему приложению мы можем использовать анимацию. Мы можем использовать анимацию для любого элемента экрана. Например: Мы можем создать анимацию для кнопки, что бы кнопка “выплывала” или медленно приобретала цвет, в общем все что нам придет в голову. На этом уроке мы начнем знакомится с простой анимацией. Для практики мы используем приложение которое мы создали на прошлом уроке “Справочник рыбака“. У нас был экран с логотипом, при открытии приложения появлялся логотип и кнопка для перехода на главный экран. Теперь мы добавим нашему логотипу и кнопки небольшую анимацию, что бы логотип и кнопка не просто появлялись на экране а появлялись с помощью анимации.

Шаг 1: Создаем папку "anim" и файлы с анимацией.

Для начало создадим папку “anim” внутри папки “res“. Для этого наводим курсор на папку “res” и жмем на правую кнопку мышки, открывается меню в котором выбираем “New” и в новом открывшемся меню выбираем “Android Resource Directory“, в открывшемся окне в разделе “Resource type” выбираем “anim“, жмем “ОК” и готово, у нас должна появится папка внутри папка “anim“. В этой папке мы будем хранить нашу анимацию. Теперь внутри данной папки “anim” создаем “Animation resource file” нажав правой кнопкой мышки на папке “anim” выбираем “New/Animation resource file“. Имя файла будет “logo_anim.xml” (данную анимацию мы используем для логотипа). Откроется наш только что созданный файл, удаляем все внутри и вставляем

 следующий код:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="800" >
<scale
    android:fromXScale="0.0"
    android:fromYScale="0.0"
    android:toXScale="1.0"
    android:toYScale="1.0"
    android:pivotX="50%"
    android:pivotY="50%"/>
</set>

Теперь создаем еще один файл с именем “button_anim.xml“. Как и в первом примере удаляем содержимое и вставляем 

следующий код:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="800">
<translate
    android:fromXDelta="-1000"
    android:toXDelta="0" />
</set>

Ну и на в заключении создадим еще один файл для эксперимента и назовем его “alpha_anim.xml” (процесс создания тот же):

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="3000">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        />
</set>

Для того что бы применить данную анимацию к нашим элементам экрана (логотип, кнопка и.т.д), нам нужно написать немного кода в наше “Logo_Activity“.

Полный код “Logo_Activity” будет выглядеть так:

import android.app.Activity;
import android.content.Intent;
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 Logo_Activity extends Activity {
//Создаем переменные для нашей анимации
 private Animation logoAnim,buttonLogoAnim ;
private Button bAnim;

private ImageView logoImage;
@Override
 protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.logo_activity);
init();

}
private void init()
{
// Загружаем анимации в переменные
 logoAnim = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.logo_anim);
buttonLogoAnim = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.button_anim);

logoImage = findViewById(R.id.logoView);
bAnim = findViewById(R.id.buttonAnim);
//Запускаем анимацию
 logoImage.startAnimation(logoAnim);
bAnim.startAnimation(buttonLogoAnim);

}

public void onClickStart(View view)
{
Intent i = new Intent(Logo_Activity.this,MainActivity.class);
startActivity(i);

}

@Override
 protected void onDestroy() {
super.onDestroy();
finish();
}
}