Transition d'activité en Android

Comment puis-je définir la transition entre deux activités pour Android 1.5 et versions ultérieures? J'aimerais qu'une activité se fade.

  • Variables des membres vs setArguments in Fragments
  • Android Studio SEULEMENT! DexException: Impossible de fusionner l'index 65536 dans une instruction non jumbo
  • Les problèmes de fuseau horaire lors de la lecture de la date d'Ormlite
  • Comment obtenir le texte sélectionné de edittext dans Android?
  • Exécuter le code lorsque l'application Android est fermée / envoyée au fond
  • Différence entre le fonctionnement des peluches via le menu Android Studio et la ligne de commande gradlew
  • Android JNI: root-causant deadd00d (dvmAbort)
  • L'icône de l'application Android Launcher n'est pas mise à jour sur une nouvelle icône après la mise à jour du marché
  • HttpURLConnection setConnectTimeout () n'a aucun effet
  • Obtenez la distance entre deux sites dans Android?
  • Modification des couleurs de fond de dégradé sur Android au moment de l'exécution
  • L'application mettant en œuvre Parse Unity Plugin s'arrête sur un périphérique Android mais fonctionne bien dans l'éditeur
  • 11 Solutions collect form web for “Transition d'activité en Android”

    Vous pouvez le faire avec Activity.overridePendingTransition() . Vous pouvez définir des animations de transition simples dans un fichier de ressources XML. Un bon tutoriel sur ceci peut être trouvé ici .

    Voici le code pour faire une bonne fondu lisse entre deux activités …

    Créez un fichier appelé fadein.xml en res / anim

     <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="2000" /> 

    Créez un fichier appelé fadeout.xml en res / anim

     <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="2000" /> 

    Si vous souhaitez disparaître de l'activité A à l'activité B, mettez le suivant dans la méthode onCreate pour l'activité B. Avant que setContentView fonctionne pour moi.

     overridePendingTransition(R.anim.fadein, R.anim.fadeout); 

    Si les fondus sont trop lents pour vous, modifiez la durée d'Android: les fichiers xml ci-dessus à quelque chose de plus petit.

    Oui. Vous pouvez indiquer au système d'exploitation quel type de transition vous voulez avoir pour votre activité.

     @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setWindowAnimations(ANIMATION); ... } 

    Où ANIMATION est un entier faisant référence à une animation intégrée dans le système d'exploitation.

    Pour une liste d'animations par défaut, voir: http://developer.android.com/reference/android/R.anim.html

    Il existe en fait fade_in et fade_out pour API niveau 1 et supérieur.

    Un moyen même facile de le faire est:

    1. Créez un style d'animation dans votre fichier styles.xml
     <style name="WindowAnimationTransition"> <item name="android:windowEnterAnimation">@android:anim/fade_in</item> <item name="android:windowExitAnimation">@android:anim/fade_out</item> </style> 
    1. Ajoutez ce style au thème de votre application
     <style name="AppBaseTheme" parent="Theme.Material.Light.DarkActionBar"> <item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item> </style> 

    C'est tout 🙂

    Créer res> anim> fadein.xml

     <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" /> 

    Create res> anim> fadeout.xml

     <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" /> 

    En res> valeurs> styles.xml

     <style name="Fade"> <item name="android:windowEnterAnimation">@anim/fadein</item> <item name="android:windowExitAnimation">@anim/fadeout</item> </style> 

    Dans les activités surCréer ()

     getWindow().getAttributes().windowAnimations = R.style.Fade; 

    Voici le code pour faire une bonne journée entre deux activités.

    1. Effet lisse de gauche à droite

      Créez un fichier appelé slide_in_right.xml et slide_out_right.xml en res / anim

      Slide_in_right.xml

        <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false" > <translate android:duration="5000" android:fromXDelta="100%" android:toXDelta="0%" /> <alpha android:duration="5000" android:fromAlpha="0.0" android:toAlpha="1.0" /> </set> 

      Slide_out_right.xml

       <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false" > <translate android:duration="5000" android:fromXDelta="0%" android:toXDelta="-100%"/> <alpha android:duration="5000" android:fromAlpha="1.0" android:toAlpha="0.0" /> </set> 
    2. Effet lisse de droite à gauche

      Créez un fichier appelé animation_enter.xml et animation_leave.xml en res / anim

      Animation_enter.xml

        <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <translate android:fromXDelta="-100%" android:toXDelta="0%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="700"/> </set> 

      Animation_leave.xml

        <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <translate android:fromXDelta="0%" android:toXDelta="100%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="700" /> </set> 
    3. Naviguer d'une activité à l'autre Activité

        Intent intent_next=new Intent(One_Activity.this,Second_Activity.class); overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_right); startActivity(intent_next); finish(); 

      4. Lors de l'événement de sauvegarde arrière ou Naviguer de la deuxième activité à une Activité

        Intent home_intent = new Intent(Second_Activity.this, One_Activity.class); overridePendingTransition(R.anim.animation_enter, R.anim.animation_leave); startActivity(home_intent); finish(); 

    J'ai écrasé mon animation d'activité par défaut. Je l'ai testé dans api 15, cela fonctionne bien. Voici la solution que j'utilise:

     <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorPrimary</item> <item name="android:windowAnimationStyle">@style/CustomActivityAnimation</item> </style> <style name="CustomActivityAnimation" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item> <item name="android:activityOpenExitAnimation">@anim/slide_out_left</item> <item name="android:activityCloseEnterAnimation">@anim/slide_in_left</item> <item name="android:activityCloseExitAnimation">@anim/slide_out_right</item> </style> 

    Créez un dossier animé sous le dossier Res, puis créez ces quatre fichiers d'animation:

    Slide_in_right.xml

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

    Slide_out_left.xml

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

    Slide_in_left.xml

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

    Slide_out_right.xml

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

    Vous pouvez télécharger mon exemple de projet .

    C'est tout… 🙂

    Vous ne pouvez pas utiliser overridePendingTransition dans Android 1.5. OverridePendingTransistion est venu à Android 2.0.

    Si vous allez passer par là sans aucune erreur, vous devez compiler pour la cible (1.5 ou plus haut) en utilisant les animations ordinaires (ou vous possédez) ou vous devez compiler pour la cible (2.0 ou plus) en utilisant overridePendingTransistion.

    Résumé: Vous ne pouvez pas utiliser overridePendingTransistion dans Android 1.5 .

    Vous pouvez bien utiliser les animations intégrées dans le système d'exploitation.

    EN GALAXIE Appareils:

    Vous devez vous assurer que vous ne l'avez pas activé dans l'appareil à l'aide des Paramètres> Options du développeur:

    two muppets

    Utilisez ActivityCompat.startActivity () fonctionne API> 21.

      ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, transitionImage, EXTRA_IMAGE); ActivityCompat.startActivity(activity, intent, options.toBundle()); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.