2012-11-08 12 views
5

Chcę dodać animację, aby mój widok obrazu przesunął się w lewo, opuścić ekran i wejść z prawej strony, przesuwając z powrotem do pierwotnej pozycji. Próbowałem robić coś takiego ..Widok, aby wyjść z lewej i wejść od prawej

<translate 
     android:duration="1000" 
     android:fromXDelta="0" 
     android:toXDelta="-100%p" /> 

    <translate 
     android:startOffset="1000" 
     android:duration="1000" 
     android:fromXDelta="100%p" 
     android:toXDelta="0" /> 

ale animacja nie jest jak na moje życzenie .. Czy ktoś może mi pomóc

+0

Pleasse dodaj odpowiednie tagi językowe –

+0

@Jan Dvorak ,,, Dodano :) – coderock

Odpowiedz

4

Edit: Dobrze więc, co chce zrobić, to ból w a ** (jesteście kolejną z tych androidowych rzeczy, które powinny być proste)! Posiadanie dwóch animacji po sobie po prostu nie układa się zbyt dobrze we wcześniejszych wersjach Androida. W wersjach nigdy nie można użyć zestawu animacji z api lvl 11. Przykład: here. Ewentualnie pójdę z prostszą animacją.

Oto jak to zrobić slajd/out dla działalności (stary odpowiedzi):

slajdów w lewym działalności:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="100%p" android:toXDelta="0" 
    android:duration="@android:integer/config_shortAnimTime"/> 

przesuwać się w prawo działalności:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="-100%p" android:toXDelta="0" 
    android:duration="@android:integer/config_shortAnimTime"/> 

Przesuń lewą aktywność:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="0" android:toXDelta="-100%p" 
    android:duration="@android:integer/config_shortAnimTime" /> 

Wysuń prawą działalności:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="0" android:toXDelta="100%p" 
    android:duration="@android:integer/config_shortAnimTime" /> 

Przykład użycia:

Intent intent = new Intent(this, YourNewActivity.class); 
startActivity(intent); 
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left); 

Przykład użycia na odwrocie:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     super.onBackPressed(); 
     overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right); 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+0

dziękuje Warpzit za odpowiedź, ale chcę dodać animację do mojego widoku obrazu – coderock

+0

to jest powód, dla którego użyłem dwóch "translate" razem z drugi zaczyna się od startOffset, aby uzyskać opóźnienie. – coderock

+0

Warpzit, mam punkt, ale mam tylko jedną czynność .. Chcę, aby mój widok obrazu opuścił i ten sam widok, aby wrócić ... – coderock

0

Jak powiedział Warpzit jego błąd i jest to znany problem. .. jak w here

Zmarnowałem swój czas myśląc, że to był błąd z mojej strony. Alternatywą określoną przez programistę jest: "Możesz to osiągnąć za pomocą dwóch animacji. Uruchom pierwszy i po jego zakończeniu (za pomocą detektora animacji, który ma być powiadamiany), rozpocznij od drugiego ( ). To nie jest tak łatwo i przyjemnie, ale to powinno działać.”

i Inną rzeczą jest to, że nauczyłem android plastra miodu ma więcej funkcji animacji niż stary versions..Inorder korzystać z tych funkcji w wersji pre-plastra miodu możemy wykorzystać nineoldandroids

Powiązane problemy