2010-04-02 3 views

ответ

26

В принципе, кроме (довольно болезненной) кадра/Tween анимации есть макет анимация, просмотр анимация и переходы анимация. Анимация макета срабатывает, когда элемент отображается, либо при начальном макете активности, либо когда вы устанавливаете вид на видимый, и анимации перехода при запуске нового действия. Стандартные анимации представлений - это гибкие анимации рабочей лошади, которые вы можете запускать на основе каждого представления/макета, но они занимают немного больше работы (за пределами определений XML, анимации Activity и Layout обычно являются однострочными).

Есть также полезные классы, такие как ViewFlipper, чтобы облегчить работу с некоторыми анимациями. Проверьте приложение Android API Demos, которое поставляется с SDK (документация here). Легкие анимации просмотра находятся в this class, переходы в this class и некоторые более сложные примеры here (в демонстрационном приложении 2.0 API есть пример анимации макета, но я не могу найти его в онлайн-документах). Обязательно ознакомьтесь с соответствующим XML для демонстраций в res/anim; спецификация для анимации XML в документации немного разрежена, но в примерах API и исходном коде Android есть много хороших примеров. Вы можете использовать XML для настройки как типа переходов (выцветания, прокрутки и т. Д.), Так и интерполяции (ускорение, перерегулирование и т. Д.), Что дает достаточную мощность (достаточно для покрытия большинства случаев использования, в любом случае).

Класс AnimationUtils также может помочь. Быстрый grep через исходный код системы Android должен дать вам отличный рабочий материал для всего вышеперечисленного. Эти ресурсы должны быть достаточными для начала работы; удачи!

ADDENDUM (5/2011): Существует также система (0 + 0+) property animation, что очень круто, потому что вы можете использовать ее для анимации произвольных свойств в пользовательских представлениях; если вы не пишете приложение, специфичное для версии 3.0, вам нужно подождать, прежде чем использовать его.

+1

Если вы ориентируетесь на <3.0, ознакомьтесь с отличной библиотекой NineOldAndroid. http://nineoldandroids.com/ – irwinb

+1

Определенно. Предостережение: AFAIK любые анимации свойств, которые он не может подделать со старой системой, просто проигнорируются, и даже некоторые из них могут подделать, будут выглядеть менее изящными при использовании старых преобразований совместимости системы (в частности, изменение размеров анимаций с содержимым вокруг изменение размера - это просто ограничение реализации старой системы, которое только изменяет рисунок представлений, а не их фактические размеры). –

Смежные вопросы