2012-11-08 4 views
5

Ich möchte eine Animation hinzufügen, so dass meine Bildansicht nach links gleitet, den Bildschirm verlassen und von rechts eintreten, zurück in die ursprüngliche Position gleiten. Ich habe versucht, so etwas wie dies zu tun ..Ansicht von links gehen und von rechts eingeben

<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" /> 

Aber die Animation ist nicht so mein Wunsch per .. Kann mir jemand helfen

+0

Please fügen Sie die entsprechenden Sprache Tags –

+0

@Jan Dvorak ,,, Hinzugefügt :) – coderock

Antwort

4

bearbeiten: Okay, so was Sie versuchen, ein Schmerz zu tun ist, in der a ** (ye eine andere dieser Android-Dinge, die einfach sein sollte)! Wenn man zwei Animationen hintereinander hat, geht das bei früheren Versionen von Android einfach nicht so gut. Auf nie Versionen können Sie animationset von api lvl 11 verwenden. Beispiel here. Alternativ würde ich mit einer einfacheren Animation gehen.

Hier ist, wie Rutsche für Aktivität in/out zu tun (alte Antwort):

Slide in der linken Aktivität:

<?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"/> 

Slide in der rechten Aktivität:

<?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"/> 

Schieben Sie die linke Aktivität heraus:

<?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" /> 
out rechts Aktivität

Slide:

<?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" /> 

Beispiel Nutzung:

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

Beispiel für die Verwendung auf der Rückseite:

@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

Dank Warpzit für Ihre Antwort, aber ich möchte die Animation meiner Bildansicht hinzufügen – coderock

+0

das ist der Grund, warum ich zwei "übersetzen" s zusammen mit der zweite, der mit startOffset für eine Verzögerung beginnt. – coderock

+0

Warpzit, ich habe ur Punkt, aber ich habe nur eine Aktivität .. Ich möchte mein Imageview verlassen und die gleiche Ansicht zurückgeben ... – coderock

0

Wie Warpzit sagte, es ist ein Fehler und ist ein bekanntes Problem. .. wie in here

Ich verschwendete meine Zeit mit dem Gedanken, dass es ein Fehler von meiner Seite war. Eine vom Entwickler angegebene Alternative ist-- "Sie können es erreichen, indem Sie zwei Animationen verwenden. Starten Sie die erste und , wenn es endet (mit einem Animations-Listener, der benachrichtigt werden soll), starten Sie die Sekunde. Es ist nicht so schön und einfach, aber es sollte funktionieren.“

und eine andere Sache, die ich gelernt habe, ist, dass Android Honeycomb mehr Animations-Features als die alte versions..Inorder diese Eigenschaften in uns vorgeWaben Versionen zu verwenden, hat

nineoldandroids verwenden
Verwandte Themen