Начать деятельность с анимации - PullRequest
38 голосов
/ 13 апреля 2010

Я пытаюсь начать действие с пользовательской анимацией перехода. До сих пор я обнаружил, что единственный способ сделать это (без использования onPendingTransition () в предыдущем упражнении) - использовать настраиваемую тему для этого действия и определить с помощью ActivityOpenEnterAnimation, taskOpenEnterAnimation, windowEnterAnimation или windowAnimationStyle для установки анимации. Но ни один из этих атрибутов не работает для меня. Некоторые эксперименты дали следующие результаты -

Если я установлю атрибут windowAnimationStyle в некоторый пользовательский стиль, который определяет значения для ActivityOpenEnterAnimation, taskOpenEnterAnimation, windowEnterAnimation или windowAnimationStyle, я могу избавиться от анимации перехода по умолчанию, возникающей в начале действия. Он не показывает анимацию перехода с использованием заданного фактического значения, но, по крайней мере, анимация по умолчанию не отображается.

Согласно справочному документу здесь ,

Я должен быть в состоянии определить анимацию в начале действия, используя ActivityOpenEnterAnimation. Но пока безуспешно.

Есть идеи?

1 Ответ

85 голосов
/ 16 февраля 2011

Я использую это в моем текущем проекте, в основном это довольно просто. Вы определяете новый стиль анимации в вашем файле styles.xml, например:

<!-- just defines top layer "Animation" -->
<style name="Animation" />

<!-- the animations must have been defined in your "anim" folder, of course -->
<style name="Animation.MyAwesomeAnimation" parent="android:style/Animation.Activity">
    <item name="android:activityOpenEnterAnimation">@anim/myawesomeanimation_enter</item>
    <item name="android:activityOpenExitAnimation">@anim/hold_long</item>
    <item name="android:activityCloseEnterAnimation">@anim/hold_long</item>
    <item name="android:activityCloseExitAnimation">@anim/myawesomeanimation_exit</item>
</style>

Затем установите этот стиль в теме (themes.xml):

<style name="Theme.MyAwesomeTheme" parent="Theme.Default">
    <item name="android:windowAnimationStyle">@style/Animation.MyAwesomeAnimation</item>
</style>

И тогда вы можете просто установить эти темы для каждого занятия, которое вам нравится в вашем AndroidManifest.xml:

<activity
    android:name=".MyAwesomeActivity"
    android:theme="@style/Theme.MyAwesomeTheme" />

Теперь я желаю вам большого удовольствия с анимацией активности! : -D

...