2010-04-12 13 views
37

Próbuję rozpocząć działanie z niestandardową animacją przejścia. Jedynym sposobem, jaki udało mi się do tej pory dowiedzieć (bez użycia onPendingTransition() w poprzednim działaniu) jest użycie niestandardowego motywu w działaniu i zdefiniowanie albo activityOpenEnterAnimation, taskOpenEnterAnimation, windowEnterAnimation lub windowAnimationStyle, aby ustawić animację. Ale żaden z tych atrybutów nie działa dla mnie. Niektóre eksperymenty dały następujące wyniki: - Jeśli ustawię atrybut windowAnimationStyle na jakiś niestandardowy styl, który definiuje wartości activityOpenEnterAnimation, taskOpenEnterAnimation, windowEnterAnimation lub windowAnimationStyle, mogę pozbyć się domyślnej animacji przejścia pojawiającej się na początku działania. Nie pokazuje animacji przejścia przy użyciu określonej wartości rzeczywistej, ale przynajmniej domyślna animacja nie jest wyświetlana.Rozpoczęcie działania z animacją

Według dokumentu odniesienia here,

powinien być w stanie określić animację na początku aktywności przy użyciu activityOpenEnterAnimation. Ale jak dotąd nie udało się.

Wszelkie pomysły?

+0

To pytanie zadano o ** Android 2.1 (Eclair) **. Nie wiem, czy problem powstaje, czy ma znaczenie dla późniejszych wersji, mianowicie Froyo/Honeycomb. Nie mogę tego znaleźć. – adityad

Odpowiedz

78

Używam tego w bieżącym projekcie, w zasadzie jest to całkiem proste. Zdefiniować nowy styl animacji w styles.xml, tak:

<!-- 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> 

Następnie ustawić ten styl w motywu (themes.xml):

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

a następnie można po prostu ustawić te tematy do każdej aktywności chcesz w swoim AndroidManifest.xml:

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

teraz życzę wam wielką zabawę z animacji aktywności! :-D

+25

Po 4-godzinnym doświadczeniu mam świetną informację dla wszystkich !: Aktywacja animacji dla twojego telefonu jest bardzo ważna: Ustawienia-> Wyświetlanie-> Animacja i wybierz "wszystkie animacje"! – Informatic0re

+24

Z mojego doświadczenia wynika również, że domyślne animacje to: '