Can I change the Android startActivity() transition animation?

I am starting an activity and would rather have a alpha fade-in for startActivity(), and a fade-out for the finish(). How can I go about this in the Android SDK?

107
задан coneybeare 18 August 2010 в 18:16
поделиться

2 ответа

В том же операторе, в котором вы выполняете finish (), также выполните вашу анимацию. Затем в новом действии запустите другую анимацию. См. Этот код:

fadein.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" 
     android:fillAfter="true">
     <alpha android:fromAlpha="1.0" 
            android:toAlpha="0.0"
            android:duration="500"/> //Time in milliseconds
</set>

В вашем финишном классе

private void finishTask() {
    if("blabbla".equals("blablabla"){
        finish();
        runFadeInAnimation();
    }
}

private void runFadeInAnimation() {
    Animation a = AnimationUtils.loadAnimation(this, R.anim.fadein);
    a.reset();
    LinearLayout ll = (LinearLayout) findViewById(R.id.yourviewhere);
    ll.clearAnimation();
    ll.startAnimation(a);   
}

fadeout.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
           android:fillAfter="true">
  <alpha android:fromAlpha="0.0"
         android:toAlpha="1.0"
         android:duration="500"/>
</set>

В вашем новом классе Activity вы создаете похожий метод, такой как runFadeAnimation, который я написал, а затем запускаете его в onCreate и не забудьте изменить идентификатор ресурсов на постепенное исчезновение.

34
ответ дан 24 November 2019 в 03:34
поделиться

См. Темы на android: http://developer.android.com/guide/topics/ui/themes.html .

В разделе themes.xml должен быть android: windowAnimationStyle , где вы можете увидеть объявление стиля в styles.xml .

Пример реализации:

<style name="AppTheme" parent="...">

    ...

    <item name="android:windowAnimationStyle">@style/WindowAnimationStyle</item>

</style>

<style name="WindowAnimationStyle">
    <item name="android:windowEnterAnimation">@android:anim/fade_in</item>
    <item name="android:windowExitAnimation">@android:anim/fade_out</item>
</style>
39
ответ дан 24 November 2019 в 03:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: