web-dev-qa-db-fra.com

android 5 transition d'activité sur l'api inférieur

Chaque fois que je recherche, je tombe sur "" Android 5(L) transition d'activité uniquement disponible sur API >= 21.

c'est bien mais je peux voir une application comme QuickPic et google inbox qui utilisent une transition similaire et aussi travaillant sur une API inférieure, alors comment cette application peut-elle faire une telle chose?

ce que j'ai fait?

1) beaucoup de recherche :)

2) jouer avec ActivityOptionsCompat qui ne s'applique qu'à api> = 21, comme ceci:

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, transitionView, DATA.EXTRA_PASSED_JSON);
Intent intent = new Intent(activity, PhotoViewerActivity.class);
intent.putExtra(DATA.EXTRA_PASSED_JSON, json);
ActivityCompat.startActivity(activity, intent, options.toBundle());

EDIT (question marquée en double): c'est différent de l'autre question dans ce cas, parce que j'ai dit qu'il y avait une autre application qui fait cette transition dans une API inférieure et je veux savoir comment ils font cela.

32
mehdok

Nous avons ajouté beaucoup de choses dans Lollipop pour que les transitions d'activité fonctionnent bien. Il est possible de faire des transitions d'activité manuellement (dans les versions antérieures), mais vous rencontrerez des problèmes dans certains cas et la transition de retour ne fonctionnera probablement que dans le cas le plus simple. Chet Haase a un devbyte à ce sujet ici .

Les animations entre fragments étaient possibles plus tôt, bien que l'API ne soit pas aussi facile à utiliser que dans les transitions de fragments de Lollipop.

Nous avons beaucoup réfléchi au retour des transitions de portage vers les versions antérieures de la bibliothèque de support. Cela peut encore arriver. Si c'est le cas, nous devrions également être en mesure de faire quelque chose pour les transitions de fragments.

38
George Mount

Comme vous le dites vous-même, la bibliothèque de support ne prend pas en charge (toutes) les transitions sur les versions Android inférieures à 5.0). Il existe cependant quelques alternatives:

Bibliothèques de compatibilité non officielles
https://github.com/andkulikov/transitions-everywhere
https://github.com/takahirom/PreLollipopTransition
https://github.com/lgvalle/Material-Animations

KitKat Android
http://www.doubleencore.com/2013/11/new-transitions-framework/ et un exemple trouvé dans votre dossier d'exemples SDK.

22
Mdlc