Écran clignotant sur la transition d'image entre les activités

J'ai implémenté une transition d'image entre deux activités en utilisant les nouveaux éléments partagés de lollipop. Cela fonctionne, mais j'ai un blanc bizarre clignotant sur l'écran tout entier pendant la transition et je ne peux pas trouver comment m'en débarrasser. Voici un exemple: La barre d'état clignote également

Voici comment la deuxième activité est lancée

  • Changement de nom de développeur Android
  • Application Google SignIn in sans l'ajouter dans les comptes de périphériques
  • Taille de la barre de défilement Android ScrollView
  • Ajout de fichiers .aar locaux à ma compilation Gradle
  • Les éléments d'action du fragment initial de Viewpager ne s'affichent pas
  • Facture d'application v3 - Ne pas détecter le remboursement
  • public static void launch( @NonNull Activity activity, @NonNull View transitionView, Game game) { ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation( activity, transitionView, game.gameFullId); Intent intent = new Intent(activity, ListImportationLoginActivity.class); intent.putExtra(INTENT_EXTRA_GAME, retailer); ActivityCompat.startActivity(activity, intent, options.toBundle()); } 

    Ensuite, onCréer:

     ViewCompat.setTransitionName(mLogoView, mGame.gameFullId); 

    Et le fichier thématique:

     <resources> <style name="Theme.MyApp.NoActionBar" parent="Theme.MyApp.NoActionBar.Base"> <item name="android:windowContentTransitions">true</item> <item name="android:windowAllowEnterTransitionOverlap">true</item> <item name="android:windowAllowReturnTransitionOverlap">true</item> <item name="android:windowSharedElementEnterTransition">@android:transition/move</item> <item name="android:windowSharedElementExitTransition">@android:transition/move</item> </style> </resources> 

    Merci de votre aide

  • GCM et App Engine pour l'application de chat
  • Inclure .so library dans apk dans android studio
  • Convertir la latitude et la longitude en esri arcGIS MapPoint
  • Comment puis-je créer une fonction définie par l'utilisateur dans SQLite?
  • Gestion de la connexion et rappelez-moi avec le AccountManager
  • Impossible d'ajouter un package de compatibilité au projet Android
  • 9 Solutions collect form web for “Écran clignotant sur la transition d'image entre les activités”

    Le «clignotement blanc» que vous voyez est le résultat des deux activités animées par l'entrée et la sortie pendant la transition: lorsque l'activité A démarre l'activité B , l'activité A s'efface et l'activité B s'efface.

    Si vous souhaitez empêcher la barre d'état et / ou la barre de navigation de s'effacer pendant la transition (et ainsi réduire l'effet "clignotant" un peu), vous pouvez regarder cette publication .

    Sur l'activité getWindow().setExitTransition(null); , appelez getWindow().setExitTransition(null);

    Lors de l'activité de saisie, appelez getWindow().setEnterTransition(null);

    Cela empêchera l'évanouissement de l'activité sortante et la disparition de l'activité de saisie, ce qui supprime l'effet de clignotement apparent.

    Faire une méthode dans helper comme

     public static Transition makeEnterTransition() { Transition fade = new Fade(); fade.excludeTarget(android.R.id.navigationBarBackground, true); fade.excludeTarget(android.R.id.statusBarBackground, true); return fade; } 

    Exécutez-le dans l'activité que vous démarrez comme ça

     getWindow().setEnterTransition(TransitionUtils.makeEnterTransition()); 

    Source https://github.com/alexjlockwood/custom-lollipop-transitions/

    J'ai résolu ce problème en changeant la couleur de fond de mon thème par défaut, j'espère que cela peut encore aider quelqu'un à économiser l'heure.

     <item name="android:windowBackground">@color/black</item> <item name="android:colorBackground">@color/black</item> 

    J'ai eu des problèmes clignotants similaires et j'ai essayé plusieurs des exemples mentionnés ici, mais pour moi, cela n'a pas résolu les problèmes. Ce qui a fonctionné pour moi, c'est que le fond de la fenêtre pour que le second thème d'activité soit transparent. (@Webdma a utilisé le noir, mais dans mon cas, l'écran a clignoté en noir au lieu de blanc)

      <item name="android:windowBackground">@android:color/transparent</item> 

    Dans ma situation, la deuxième activité n'avait pas de barre d'état définie dans le thème de l'activité avec cette balise.

     <item name="android:windowFullscreen">true</item> 

    Étant donné qu'il n'était pas obligatoire de cacher la barre d'état en mode portrait, j'ai supprimé cette étiquette et supprimé ou affiché manuellement la barre d'état au besoin et le clignotement disparu.

    J'avais un problème similaire. J'ai résolu la barre d'état clignotante et les problèmes de barre de navigation en les excluant de la transition selon la suggestion de @ Alex, mais l'écran clignait toujours lors de la transition entre les activités. Lorsque j'ai supprimé le "finish ();" Déclaration après startActivity (); L'écran a cessé de cligner des yeux. Peut-être en raison de la fermeture de l'activité d'appel. J'espère que ça aide quelqu'un.

    Les éléments s'effondrent, sauf si vous spécifiez explicitement qu'ils sont identiques sur les deux activités. Cela inclut l'état et la barre de navigation.

    Dans votre cas particulier, j'ajoute la barre d'outils et ces deux vues à la liste des éléments partagés:

     List<Pair> viewPairs = new ArrayList<>(); viewPairs.add(Pair.create(findViewById(android.R.id.statusBarBackground), Window.STATUS_BAR_BACKGROUND_TRANSITION_NAME)); viewPairs.add(Pair.create(findViewById(android.R.id.navigationBarBackground), Window.NAVIGATION_BAR_BACKGROUND_TRANSITION_NAME)); // Add your views... Pair[] array = new Pair[viewPairs.size()]; ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), viewPairs.toArray(array)).toBundle(); // ... ActivityCompat.startActivity(activity, intent, options.toBundle()); 

    Quelques réponses utiles ci-dessus. Dans la mesure où je comprends, cela s'explique par le chevauchement de la transition d'activité. Pour résoudre ce problème, j'ai utilisé les valeurs suivantes dans les méthodes onCreate() des deux activités:

     getWindow().setAllowEnterTransitionOverlap(false); getWindow().setAllowReturnTransitionOverlap(false); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.