android 5 activity transition on lower api [duplicate]
Asked Answered
M

2

32

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.

Maddi answered 7/12, 2014 at 15:44 Comment(1)
@alex-lockwood in the future when you decide to singlehandly close a ticket for being a duplicate, please link to the duplicate post.Impeach
U
38

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.

Ungraceful answered 8/12, 2014 at 1:47 Comment(2)
in the recent update to Gmail app, we can see that the makeSceneTransitionAnimation is possible in pre-lollipop devices as well, can you please let me know how can we achieve this ?Vergievergil
good news foks it happens they have added it in v4 support lib take a look at developer.android.com/reference/android/support/transition/…Lxx
B
22

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.

Banna answered 7/12, 2014 at 15:55 Comment(5)
tnx, i think i can make this work.Maddi
with the library you linked i can use transition between 2 view in lower api but i can't figure out how to apply transition between 2 activity, can you hint me?Maddi
You can load the view of the second activity, then, perform an intent without animation. Ofcourse, this is more difficult when you next activity has different content.Banna
I tried github.com/takahirom/PreLollipopTransition between two activities and its working. Do you have any idea if we can do transition of multiple elements using it?Miserere
I doesn't look like PreLollipopTransition supports multiple elements. You can try using a view container (e.g. a relativelayout) if you want to transfer multiple elements at once. You can try using the other library or filing this as a future suggestion to the library.Banna

© 2022 - 2024 — McMap. All rights reserved.