Подтвердить что ты не робот

Начать операцию с анимации

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

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

В соответствии с ссылкой doc здесь,

Я должен уметь определять анимацию в начале действия с помощью activityOpenEnterAnimation. Но успеха пока нет.

Любые идеи?

4b9b3361

Ответ 1

Я использую это в моем текущем проекте, это в основном довольно просто. Вы определяете новый стиль анимации в ваших 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