2012-11-08 15 views
5

Desidero aggiungere animazione in modo che la mia vista di immagini scenda verso sinistra, esca dallo schermo e entri da destra, tornando alla sua posizione originale. Ho provato a fare qualcosa di simile ..Visualizza per lasciare da sinistra e immettere da destra

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

Ma l'animazione non è secondo il mio desiderio .. Qualcuno mi può dare una mano

+0

Pleasse aggiunge i tag linguaggio appropriati –

+0

@Jan Dvorak ,,, Aggiunto :) – coderock

risposta

4

Edit: Va bene così ciò che si sta cercando di fare è un dolore nella a ** (voi un'altra delle cose androide che avrebbe dovuto essere semplice)! Avere due animazioni una dopo l'altra non va troppo bene nelle versioni precedenti di Android. In mai versioni è possibile utilizzare animationset da api lvl 11. Esempio here. In alternativa, andrei con un'animazione più semplice.

Ecco come fare scivolo in/out per l'attività (vecchia risposta):

Presentazione dell'attività sinistra:

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

scorrere in diritto di attività:

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

Diapositiva attività a sinistra:

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

Estrarre diritto di attività:

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

Esempio di utilizzo:

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

Esempio di utilizzo sul retro:

@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

grazie Warpzit per la tua risposta, ma voglio aggiungere l'animazione alla mia vista immagine – coderock

+0

questo è il motivo per cui ho usato due "translate" insieme a il secondo inizia con startOffset per un ritardo .. – coderock

+0

Warpzit, ho un punto, ma ho solo una attività .. voglio che la mia vista di immagini per partire e la stessa vista per tornare indietro ... – coderock

0

Come ha detto Warpzit, è un bug ed è un problema noto. .. come in here

Ho perso tempo pensando che si trattasse di un errore dalla mia parte. Un'alternativa specificata dallo sviluppatore è-- "Puoi ottenerla usando due animazioni. Avvia il primo e quando finisce (utilizzando un listener di animazione per ricevere una notifica), avvia il secondo uno . Non è così bello e facile, ma dovrebbe funzionare."

e un'altra cosa che ho imparato è che Android Honeycomb ha più funzioni di animazione rispetto al vecchio versions..Inorder per utilizzare queste funzionalità nelle versioni pre-nido d'ape possiamo utilizzare nineoldandroids

Problemi correlati