Используйте анимацию атрибутов в Android для достижения основных эффектов анимации

1. Анимация свойств и анимация просмотра

Противоположностью анимации атрибутов является анимация просмотра.Краткое введение в анимацию просмотра см.

Используйте класс Animation в Android для достижения основных эффектов анимации.

Используйте класс AnimationSet в Android для одновременного выполнения нескольких эффектов анимации.

Хотя анимация просмотра может удовлетворять базовым анимационным эффектам, у нее есть фатальный недостаток:

Кажется, что элементы в интерфейсе двигаются, но это всего лишь "иллюзия", которую видят ваши глаза. Если вы используете View.getX() или View.getY() для проверки положения элемента, вы обнаружите, что он никогда не было Варьете.

То есть ваши глаза видят, как он движется, тогда как на самом деле его истинное положение ничуть не изменилось.

Каков будет результат этого?

Скажем, у вас есть кнопка, которая изначально скрыта за пределами экрана. Вы хотите добиться классного эффекта, проводя пальцем по экрану, сдвинув эту кнопку сбоку страницы, чтобы пользователь мог ее щелкнуть.

Вы используете анимацию просмотра для достижения этого эффекта, она «выполняет» ваше требование, ваша кнопка выскальзывает из края страницы. Хитрость заключается в том, что фактическое положение этой кнопки все еще находится за пределами экрана, поэтому ее позиция, на которую можно нажимать, все еще находится за пределами экрана. Его вообще нельзя заказать!

Вы сильно нажимаете на кнопку, которая, кажется, соскользнула с края доски, но обнаруживаете, что ничего не происходит. Даже тыкать в экран бесполезно.

В настоящее время вы больше не можете использовать анимацию просмотра. Нам нужно использовать анимацию атрибутов, чтобы добиться того же эффекта.

2. Основное использование 

Посмотрите прямо на фрагмент кода:

ObjectAnimator transAnim = ObjectAnimator.ofFloat(view,"translationX",toX);
transAnim.setDuration(durationMillis);
transAnim.start();

Это особенно просто? Единственное, что следует отметить, это то, что второй параметр "translationX" в методе ofFloat() представляет эффект анимации. Обычно используются следующие:

2.1, перемещение по оси X

Ключевое слово: переводX

ObjectAnimator transAnim = ObjectAnimator.ofFloat(view,"translationX",toX);

Объяснение параметра:

view: компонент View для перемещения

translationX: анимационный эффект перемещения по оси X

toX: позиция для перехода

2.2, перевод по оси Y

Ключевое слово: переводY

ObjectAnimator transAnim = ObjectAnimator.ofFloat(view,"translationY",toY);

Объяснение параметра:

view: компонент View для перемещения

translationY: анимационный эффект перемещения по оси Y

toY: позиция для перехода

2.3. Вращение

Ключевое слово: вращение

ObjectAnimator transAnim = ObjectAnimator.ofFloat(view,"rotation",from, to);

Объяснение параметра:

view: компонент View для поворота

вращение: анимационный эффект вращения

от: начальный угол

to: конечный угол, максимальный угол 360

2.4, вращение по оси X

Ключевое слово: вращениеX

ObjectAnimator transAnim = ObjectAnimator.ofFloat(view,"rotationX",from, to);

Объяснение параметра:

view: компонент View для поворота

rotateX: анимационный эффект вращения по оси X

от: начальный угол

to: конечный угол, максимальный угол 360

2.5, вращение по оси Y

Ключевое слово: вращениеY

ObjectAnimator transAnim = ObjectAnimator.ofFloat(view,"rotationY",from, to);

Объяснение параметра:

view: компонент View для поворота

rotateY: анимационный эффект вращения по оси Y

от: начальный угол

to: конечный угол, максимальный угол 360

2.6, масштабирование по оси X

Ключевое слово: масштабX

ObjectAnimator transAnim = ObjectAnimator.ofFloat(view,"scaleX",from, to);

Объяснение параметра:

view: компонент View для масштабирования

scaleX: анимационный эффект масштабирования по оси X

от: начальный размер

до: конечный размер

2.7, масштабирование по оси Y

Ключевое слово: масштабY

ObjectAnimator transAnim = ObjectAnimator.ofFloat(view,"scaleY",from, to);

Объяснение параметра:

view: компонент View для масштабирования

scaleY: анимационный эффект масштабирования по оси Y

от: начальный размер

до: конечный размер

2.8. Изменения прозрачности

Ключевое слово: альфа

ObjectAnimator transAnim = ObjectAnimator.ofFloat(view,"alpha",from, to);

Объяснение параметра:

view: компонент View, который нужно изменить

альфа: анимационный эффект изменения прозрачности

от: начальная прозрачность

to: прекратить прозрачность

3. Комбинированная анимация

Комбинированную анимацию очень легко реализовать.В соответствии с вашими реальными потребностями сначала используйте PropertyValuesHolder, чтобы определить несколько различных эффектов анимации:

PropertyValuesHolder ValuesHolder1 = PropertyValuesHolder.ofFloat("scaleX",0,1);
PropertyValuesHolder ValuesHolder2 = PropertyValuesHolder.ofFloat("scaleY",0,1);
PropertyValuesHolder ValuesHolder3 = PropertyValuesHolder.ofFloat("alpha",0,1);

Затем используйте метод ofPropertyValuesHolder(): 

ObjectAnimator objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, ValuesHolder1,ValuesHolder2, ValuesHolder3);

Наконец, установите продолжительность анимации и запустите анимацию:

objectAnimator.setDuration(durationMillis);
objectAnimator.start();

Guess you like

Origin blog.csdn.net/freezingxu/article/details/123840545