Ответ 1
Честно говоря, Google проделал очень хорошую работу, объясняя различия в их API API анимации свойств (см. ниже).
TL; DR основные отличия:
-
анимации Tween являются лаконичными и позволяют манипулировать не более чем местоположением (трансляцией), размером (масштабом), углом (вращением) и полупрозрачностью (альфа) представлений. Структура анимации свойств более универсальна и гибка: она обобщает первый случай, позволяя в реальном времени обновлять любое свойство (например, "foobar" ) целевого объекта анимации при условии, что у него есть метод setFoobar(). setScaleX(), setAlpha() и т.д. - это только конкретный случай, когда дело доходит до представлений.
-
Соответственно, анимация анимации анимации часто бывает проще, а код более легкий.
-
Анимации свойств можно использовать над целевыми объектами любого типа, а не только с представлениями: единственное, что имеет значение, - это определение методов setFoobar(), как объяснялось ранее (метод поиска на основе отражения).
-
Твиновские анимации просто выполняют настройки по конфигурациям представлений, а анимации свойств эффективно изменяют объект. Общим недостатком прежнего подхода является то, что при использовании анимаций для перемещения видов вокруг связанная область с кликом не обновляется по всей анимации и не синхронизируется с эффективным местоположением представления на экране.
Чтобы процитировать руководство:
Как анимация свойств отличается от анимации просмотра
Система анимации представления предоставляет возможность анимировать объекты View, поэтому, если вы хотите анимировать объекты без просмотра, для этого вам необходимо реализовать свой собственный код. Система анимации представления также ограничена тем фактом, что она предоставляет только несколько аспектов объекта View для анимации, например масштабирование и поворот представления, но не цвет фона. Например,
Другим недостатком системы анимации просмотров является то, что она только изменила место, где была отображена View, а не фактический вид. Например, если вы анимировали кнопку для перемещения по экрану, кнопка рисует правильно, но фактическое место, где вы можете нажать кнопку, не изменяется, поэтому вам нужно реализовать свою собственную логику, чтобы справиться с этим.
С системой анимации свойств эти ограничения полностью удаляются, и вы можете анимировать любое свойство любого объекта (Views и non-Views), и сам объект фактически изменяется. Система анимации свойств также более надежна в том, как она выполняет анимацию. На высоком уровне вы назначаете аниматоры свойствам, которые вы хотите оживить, например цвет, положение или размер и можете определять аспекты анимации, такие как интерполяция и синхронизация нескольких аниматоров.
Однако система анимации просмотра занимает меньше времени для настройки и требует меньше кода для записи. Если анимация просмотра выполняет все, что вам нужно сделать, или если существующий код уже работает так, как вы хотите, нет необходимости использовать систему анимации свойств. Также может иметь смысл использовать обе системы анимации для разных ситуаций, если возникает случай использования.