Come fornire l’animazione quando si chiama un’altra attività in Android?

Ho due Attività A e B. io voglio avere la compattazione Animazione quando
Attività A chiama B e massimizzare l’animazione quando l’Attività B chiama A. non ho bisogno di animazione file xml per questo.

Quando si chiama un’altra Attività in Android si dà il suo predefiniti di animazione e poi chiama shrink animazione.

Quello che voglio è che il valore predefinito di animazione non dovrebbe verificarsi e l’animazione che voglio dovrebbero verificarsi.

Possiamo effettivamente dare l’animazione quando si chiama un’altra Attività?

InformationsquelleAutor sunil | 2010-04-16

 

4 Replies
  1. 139

    A partire dalle API 16 è in grado di fornire un’attività opzioni bundle quando si chiama Contesto.startActivity(Intent, Bundle) o i relativi metodi. Esso viene creato tramite il ActivityOptions builder:

    Intent myIntent = new Intent(context, MyActivity.class);
    ActivityOptions options = 
       ActivityOptions.makeCustomAnimation(context, R.anim.fade_in, R.anim.fade_out);
    context.startActivity(myIntent, options.toBundle());

    Non dimenticate di controllare gli altri metodi di ActivityOptions generatore e il ActivityOptionsCompat se si utilizza la Libreria di Supporto.


    API 5+:

    Per le applicazioni di targeting API di livello 5+ c’è l’Attività overridePendingTransition metodo. Ci vogliono due Id di risorsa in entrata e in uscita animazioni. Un id di 0 sarà disabilitare le animazioni. Chiamare immediatamente dopo la startActivity chiamata.

    cioè:

    startActivity(new Intent(this, MyActivity.class));
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

    API 3+:

    È possibile evitare il default di animazione (Slide da destra) con il Intent.FLAG_ACTIVITY_NO_ANIMATION bandiera nel tuo intento.

    cioè:

    Intent myIntent = new Intent(context, MyActivity.class);
    myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    context.startActivity(myIntent);

    quindi nella tua Attività devi semplicemente specificare le tue animazione.

    Questo funziona anche per la 1.5 API (Livello 3).

    • Che cosa si intende quando si dice “specificare la propria animazione”? Come si fa a fare questo? Grazie!
    • Ho la stessa domanda. Probabilmente in avvio di animazione in onResume e onPause.
    • c’è un modo per utilizzare Animatore, invece?
    • È inoltre possibile utilizzare la stessa dopo la chiamata di finitura()!
    • Non è R.anim.fade_in ancora un file xml animazione supponiamo di avere in res\anim ?
  2. 78

    È necessario utilizzare OverridePendingTransition metodo per raggiungere il proprio scopo, che è in Classe di attività. Esempio di Animazioni in apidemos esempio res/anim cartella. La casella di controllo. Più che controllare il demo in ApiDemos/App/Attività/animazione.

    Esempio:

    @Override
    public void onResume(){
        //TODO LC: preliminary support for views transitions
        this.overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
    }
    • Grazie per la risposta. Il metodo overridePendingTransition è sostenuto da API di livello 5 e mi desidera che l’applicazione per essere supportato da Android 1.5. Non c’è altro modo di fornire Animazione da un’Attività all’altra.
    • fantastico!!! questo è un sacco di divertimento a giocare con
    • ho lo stesso quetion come la tua.potrebbe risolvere il problema?animazione con le api di livello 3 o 4 ( non 5 )
    • mantenere animazione codice in onResume() sarà l’animazione a giocare quando l’utente va al di fuori della app e torna. Non è l’ideale in molte applicazioni.
    • Avevo bisogno di aggiungere super.onResume();, è stato sempre: “android.util.SuperNotCalledException: Attività {com.abc.MyActivity} non è chiamata a super.onResume()”

Lascia un commento