Android 转场动画+Adapter启动Activity
最近有个需求就是在RecyclerView中点击一个item然后跳出新的Activity,由于最近对于Material Design的翻译,所以也想做一个转场动画更为流畅的跳转。本文在环境 Android 5.0 及以上。
本文参考:
http://blog.csdn.net/wl9739/article/details/52833668
实现转场动画
- 在res/ 目录下创建 transition 文件夹,在该文件夹下定义界面转场动画和共享元素的动画。
- 在 res/value/style 文件中为每个Activity指定转场动画的style, 并在 AndroidManifest.xml 文件中为每个 Activity 设置对应的 android:theme。
- 在 Activity 调用 startActivity() 切换动画前,使用 ActivityOptionsCompat 来创建转场动画时的共享对象。
定义转场动画
在 res/ 目录下创建了 transition 资源文件夹后,就可以在该文件夹下对每一种动画进行定义。
Android 5.0(API 级别 21)支持这些进入与退出转换:
- explode(分解): 从场景中心移入或移出视图
- slide(滑动): 从场景边缘移入或移出视图
- fade(淡入淡出): 通过调整透明度在场景中增添或移除视图
每一种动画效果,都有额外的属性。比如 slide,可以使用 android:slideEdge="top"
设置滑动的方向;fade 可以使用 android:fadingMode="fade_in"
设置具体是淡入还是淡出。
一般来说,一个过渡动画可以写成下面的形式:
<explode xmlns:android="http://schemas.android.com/apk/res/android">
<targets>
<target android:excludeId="@android:id/statusBarBackground"/>
<target android:excludeId="@android:id/navigationBarBackground"/>
</targets>
</explode>
<targets/>
标签里面定义需要转场(或者不需要转场)的目标id,这个id可以是系统自带的,也可以是我们自己视图中的view的id,每一个id需要单独在 <target />
标签中定义, android:targetId 表示目标ID需要进行过渡转换的view,而