В чем разница между аниматором и анимацией?


похоже, что оба анимации и аниматоры позвольте мне анимировать свойства (положение, непрозрачность, масштаб, поворот и т. д.) На объектах, и мне трудно дифференцировать вариант использования для обоих. Когда я должен использовать аниматор против анимации, и наоборот?

2   51   2015-01-29 20:12:40

2 ответа:

Animations старые версии Animators. Аниматоры, где введены в 3.0, чтобы помочь преодолеть некоторые краткосрочные, что анимации есть.

Animations изменить только визуальное представление объекта. Это нормально, если вы просто меняете непрозрачность, но это вызывает проблемы при переводе, повороте или масштабировании объектов. В прежние времена до Animators, Если вы перевели объект, вам нужно было выполнить повторную компоновку с новыми координатами. Это может быть довольно сложно в зависимости от куда двигался объект.

аниматоры, с другой стороны, изменяют физические свойства объектов. Это означает, что при перемещении вида в новое место координаты касания будут отображаться в новом месте без какого-либо другого вмешательства.

лично я больше не использую анимацию, если только я не разрабатываю API 2.3 или меньше. К счастью, это становится все меньше проблем. Есть также некоторые старые классы, которые все еще используют API анимации, особенно когда он приходит к использованию xml-ресурсов, таких как android.support.v4.app.FragmentTransaction класс (в норме FragmentTransaction поддерживает аниматоры вместо этого).

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

An Animation объект анимировать изображение представления. Если вы используете это, например, для перемещения кнопки по экрану вы не будет можно нажать на него в новом видимом положении, потому что он не был действительно перемещен, но только его растровое представление было переведено. Вы также не сможете изменить его пропорции, так как вы вносите изменения в растровое изображение. Если вы используете xml-файлы, поместите их в anim папка.

An Animator объект анимировать представление свойство (например, поле или ширина). Если вы используете это для перемещения кнопки по экрану вы будет быть в состоянии захватить щелчки на нем в новых видимых положениях. Если вы используете xml-файлы, поместите их в .

Если вам нужны только косметические эффекты, такие как fade in или small appearance translation, используя Animation будет более эффективным, потому что он не называет layout() или measure() методы. Если вам нужно захватить действия, такие как события щелчка, используйте Animator.