android 5 activity transition on lower api

31.6k views Asked by At

Every time i search i came across this " android 5(L) activity transition only available on API >= 21 .

that's fine but i can see some app like QuickPic and google inbox that use similar transition and also working on lower api, so how this app can do such a thing?

what i have done?

1) a lot of search:)

2) playing with ActivityOptionsCompat that only apply to api >= 21, like this:

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 marked as duplicate): it's different from other question in this case, because i said there is other app that do this transition in lower api and i want to know how they do that.

2

There are 2 answers

2
George Mount On BEST ANSWER

We added a lot of stuff in Lollipop to make Activity Transitions work well. It is possible to do Activity Transitions manually (in earlier versions), but you will encounter problems in some cases and the return transition is likely going to work only in the simplest case. Chet Haase has a devbyte on this here.

Animations between fragments were possible earlier, though the API isn't as easy to use as in Lollipop's Fragment Transitions.

We thought a lot about back porting transitions to earlier versions in the support library. It may still happen. If so, we should also be able to do something for Fragment Transitions.

5
Mdlc On

Like you say yourself, the support library does not support (all) transitions on Android versions below 5.0. There are however some alternatives:

Unofficial Compatibility libraries
https://github.com/andkulikov/transitions-everywhere
https://github.com/takahirom/PreLollipopTransition
https://github.com/lgvalle/Material-Animations

Android KitKat
http://www.doubleencore.com/2013/11/new-transitions-framework/ and a sample found in your SDK samples folder.