(ПРИМЕЧАНИЕ: оригинальный пост был слегка отредактирован для улучшения читабельности)
Установка анимации для макета программно описана ниже. Вот так:
Создайте файл XML с именем, например, «bottom_out.xml» и поместите его в папку с именем «anim» внутри папки «res». Содержимое файла «bottom_out.xml» должно быть следующим:
|
01
02
03
04
05
06
07
08
09
10
|
<?xml version="1.0" encoding="utf-8"?><set android:interpolator="@android:anim/accelerate_interpolator"> <translate android:fromYDelta="0%" android:toYDelta="60%" android:duration="700"> </translate></set> |
Значения указывают процент относительно родительского макета. Интерполятор используется, чтобы указать, как должна продолжаться анимация. Это существенно определяет скорость изменения анимации. Это позволяет ускорять, замедлять, повторять и т. Д. Базовые эффекты анимации (альфа, масштаб, перевод, вращение). Например, здесь мы используем AccelerateInterpolator , поэтому анимация будет ускорена в конце. Другой интерполятор, который мы могли бы использовать, это LinearInterpolator , где скорость изменения постоянна.
Давайте посмотрим, как это можно использовать внутри класса Android.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
private void startAnimationPopOut() { LinearLayout myLayout = (LinearLayout) findViewById(R.id.anim_layout); Animation animation = AnimationUtils.loadAnimation(this,R.anim.bottom_out); animation.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { } }); myLayout.clearAnimation(); myLayout.startAnimation(animation);} |
Переменная «myLayout» (указывающая на R.id.anim_layout) — это простой LinearLayout, определенный в xml-файле в папке «layout». Класс AnimationUtils можно использовать для загрузки объекта Animation из ресурса. Мы также можем прикрепить AnimationListener s и получать уведомления на различных этапах анимации. Обратите внимание, что, как правило, рекомендуется очищать любые ранее установленные анимации перед установкой новой анимации, как показано в конце фрагмента.
Ниже приведены некоторые примеры, которыми я хотел бы поделиться:
Тонущий в:
|
1
2
3
4
5
|
<translate android:fromYDelta="70%" android:toYDelta="0%" android:duration="700"></translate> |
Слайд с левой стороны:
|
1
2
3
4
5
|
<translate android:fromXDelta="-100%p" android:toXDelta="0%" android:duration="600"></translate> |
Слайд с правой стороны:
|
1
2
3
4
5
|
<translate android:fromXDelta="100%p" android:toXDelta="0%p" android:duration="600"></translate> |
Поворот от 0 до 180 градусов:
|
1
2
3
4
5
6
7
|
<rotate android:fromDegrees="180" android:toDegrees="0" android:pivotX="50%" android:pivotY="50%" android:duration="600"></rotate> |
Здесь pivotX и PivotY — это координаты x и y центра, вокруг которого вы хотите, чтобы вид вращался.
Масштаб (здесь это увеличение):
|
01
02
03
04
05
06
07
08
09
10
11
12
13
|
<scale android:toXScale="1.1" android:fromXScale="1.0" android:toYScale="1.1" android:fromYScale="1.0" android:pivotX="0%" android:pivotY="0%" android:startOffset="100" android:duration="2000"> </scale> |
Здесь 1.0 подразумевает исходный размер представления; так как шарнир установлен на 0, вид будет масштабироваться, принимая его начало координат в качестве центра.
Узнайте больше на странице ресурсов анимации . Удачного кодирования!
Статьи по Теме: