2013-04-12 12 views
13

Tworzę animację, która będzie wyświetlana, gdy użytkownik przejdzie do określonej czynności. Zasadniczo, to działanie ślizga się do pokazania i ślizga się do zamknięcia. Używam overridePendingTransition, aby ta animacja się wydarzyła.Animacja slajdu aktywności z przesłonięciemPoczątek przejścia ma dziwny efekt

Ale z suwakiem jest brzydki efekt. Widać to na zrzucie ekranu: Screen shot

Spójrz na szary prostokąt pokazany na zamkniętym działaniu. Dlaczego to pokazano?

Myślałem, że będzie to Android.R.id.content widok Androida, więc próbowałem zmienić jego tło, ale to nie zadziałało.

Używam ActionBarSherlock i kod znajduje się poniżej:

slide_in_from_bottom.xml

<translate xmlns:android="http://schemas.android.com/apk/res/android" 
      android:fromYDelta="100%p" 
      android:toYDelta="0%p" 
      android:duration="@android:integer/config_mediumAnimTime"/> 

slide_out_to_bottom.xml

<translate xmlns:android="http://schemas.android.com/apk/res/android" 
      android:fromYDelta="0%p" 
      android:toYDelta="100%p" 
      android:duration="@android:integer/config_mediumAnimTime"/> 

nothing.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="0" android:fromAlpha="1" android:toAlpha="1"/> 

Rozpoczęcie działalności:

Intent intent = new Intent(); 
intent.setClass(getActivity(), PlayerActivity.class); 
startActivity(intent); 

getActivity().overridePendingTransition(R.anim.slide_in_from_bottom, R.anim.nothing); 

Zamknięcie działalności:

@Override 
public void onBackPressed() { 
    finish(); 
    overridePendingTransition(R.anim.nothing, R.anim.slide_out_to_bottom); 
} 
+0

Loved że zdjęcie, dziękuję za ogłoszenie rozwiązania – swiftBoy

Odpowiedz

4

znalazłem odpowiedzi na mój problem tutaj:

https://stackoverflow.com/a/6396465/1140713

Właśnie stworzyliśmy BaseActivity że wszystkie moje działania są instacji i dodawali następujący kod w onCreate:

ColorDrawable colorDrawable = new ColorDrawable(Color.TRANSPARENT); 
getWindow().setBackgroundDrawable(colorDrawable); 
3

czyli prawdopodobnie z powodu swojej notificationBar. Twoja następna czynność ma również powiadomienieBar, i ma swoją przestrzeń. Nie jestem pewien, czy jest jakaś praca nad tym ... Możesz spróbować ustawić FullScreen, ale oczywiście nie jest to, czego chcesz.

+0

Dziękuję za odpowiedź. To był naprawdę powiadomień. W każdym razie znalazłem inne rozwiązanie, które nie wymaga ustawienia pełnego ekranu: http://stackoverflow.com/a/6396465/1140713. Niedługo zaktualizuję to pytanie. –

+1

Ahh miłe, nie wiedziałem tego. Dzięki za reżyserowanie mnie również :) – yahya

Powiązane problemy