2010-10-13 13 views
10

Chcę dodać animację znikającą do mojego ekranu powitalnego, czyli podczas zamykania ekranu powitalnego Chcę przynieść efekt animacji znikającej.Android - Animacja Fadeout na ekranie powitalnym

Oto kody, które próbowałem.

overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 

Ale powyższe może być używane tylko od 2.0. Aplikacja Ny powinna obsługiwać od 1,5.

Ustawiłem następującą animację dla mojej głównej aktywności.

getWindow().setWindowAnimations(android.R.style.Animation_Toast); 

LUB

getWindow().setWindowAnimations(R.style.Theme_FadeIn); 

My Theme.FadeIn zawiera

<style name="Theme.FadeIn"> 
<item name="android:windowNoTitle">true</item> 
<item name="android:activityOpenEnterAnimation">@anim/fade_in</item> 
</style> 

Teraz mogę zobaczyć efekt fadein, ale widzę blackscreen.

Jak uzyskać efekt zanikania lub zanikania bez czarnego ekranu.

Odpowiedz

2

Można spróbować zrobić swoją aktywność przezroczyste ... spojrzeć na półprzezroczystym tematu w SDK

@android:style/Theme.Translucent 
2

SWDeveloper,

Chociaż to było około rok odkąd zrobili dowolny Sam programowanie Androida, pamiętam, że udało mi się rozwiązać ten problem za pomocą własnego ekranu powitalnego.

Niestety, w przypadku wersji przed 2.0, jestem prawie pewien, że rodzaj przejścia, jaki chcesz, nie jest możliwy między czynnościami. Oznacza to, że w wersji 1.5/1.6 tylko animacje przejściowe mogą być używane między czynnościami.

Po tym stwierdzeniu zdaję się pamiętać, że użyłem animacji przejścia widoku w ramach określonego działania, aby uzyskać efekt, którego szukałem. Innymi słowy, podczas działania na moim ekranie powitalnym, wygaszanie początkowego widoku do czystego białego widoku przed przejściem do następnego działania. Następna czynność rozpocznie się wtedy na pustym białym widoku, a następnie zniknie w rzeczywistym widoku aktywności.

Jeśli wydaje się, że jest to dużo pracy, możesz również włączyć widok ekranu powitalnego w początkowej aktywności i zawsze wyświetlaj go najpierw, a następnie znikaj. Wszystko w ramach tego samego działania. Używanie tej metody prawdopodobnie zaoszczędziłoby czasu i pracy, ale utraciłoby pewną modułowość, która wiąże się z rozdzielaniem ekranów na osobne działania.

Animacje między widokami można uzyskać (o ile dobrze pamiętam) za pomocą widżetu ViewFlipper. Dokumenty dla Androida można znaleźć tutaj: http://developer.android.com/reference/android/widget/ViewFlipper.html

Jeśli uda mi się zdobyć bazę kodu aplikacji, którą napisałem, postaram się podać przykład później.

Powodzenia!

+0

Och, aw międzyczasie nie mogę znaleźć tutoriala, na który patrzyłem w tym czasie, ale tutaj jest takie, które powinno być dobrym miejscem na rozpoczęcie: http://www.helloandroid.com/ samouczki/how-use-viewflipper – Kai

2

Jeśli używasz osobnej aktywności na ekranie powitalnym, możesz wykonać wywołanie overridePendingTransition, które jest dostępne tylko w systemie Android 2+.Można zdecydować się na aplikacje, które zostały zbudowane na 2+ zrobić przejście i poprzednie wersje po prostu zrobić domyślny przejścia:

try { 
    Method method = Activity.class.getMethod("overridePendingTransition", new Class[]{int.class, int.class}); 
    method.invoke(youractivity, inanimation, outanimation); 
} catch (Exception e) { 
    // Can't change animation, so do nothing 
} 

Lepiej mieć ekran powitalny część swojej głównej działalności (see this example). Kiedy ekran powitalny jest częścią głównej aktywności, możesz po prostu przypisać animację do układu ekranu powitalnego.

Powiązane problemy