android ap 5活动过渡到较低的api

时间:2014-12-07 15:44:23

标签: android android-5.0-lollipop activity-transition

每当我搜索时,我都会遇到{android 1(L)活动转换仅在API >= 21上提供。

这很好,但我可以看到一些应用程序,如QuickPicgoogle inbox使用类似的转换,使用较低的api,所以这个应用程序如何做这样的事情?

我做了什么?

1)很多搜索:)

2)玩ActivityOptionsCompat仅适用于api> = 21,如下所示:

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());
编辑(问题标记为重复):在这种情况下,它与其他问题不同,因为我说有其他应用程序在较低的api中执行此转换,我想知道他们是如何做到的。

2 个答案:

答案 0 :(得分:38)

我们在Lollipop中添加了很多东西,以使Activity Transitions运行良好。可以手动执行“活动转换”(在早期版本中),但在某些情况下会遇到问题,并且返回转换可能仅在最简单的情况下才起作用。 Chet Haase对此here有一个devbyte。

片段之间的动画可能更早,尽管API并不像Lollipop的片段转换那样易于使用。

我们考虑过很多关于在支持库中将转换移植到早期版本的问题。它可能仍然会发生。如果是这样,我们也应该能够为Fragment Transitions做点什么。

答案 1 :(得分:22)

就像你自己说的那样,支持库不支持5.0以下Android版本的(全部)转换。但是有一些替代方案:

非官方兼容性库
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/以及SDK示例文件夹中的示例。