Android 5.0 Activity转场动画实战:分解与共享元素效果
26 浏览量
更新于2024-08-29
收藏 170KB PDF 举报
"Android5.0之Activity的转场动画的示例"
在Android开发中,Activity的转场动画是用户体验的重要组成部分。在Android 5.0(Lollipop)之前,开发者通常通过`overridePendingTransition()`方法配合补间动画来实现Activity的入场和出场效果。然而,这些早期的动画效果较为简单,缺乏多样性。从Android 5.0开始,Google引入了更加丰富和炫酷的转场动画机制,使得Activity切换更加生动和自然。
1. 旧转场动画回顾
在Android 5.0之前,开发者会使用如下的方式启动带有动画的Activity:
```java
startActivity(new Intent(this, Main3Activity.class));
overridePendingTransition(R.anim.in, R.anim.out);
```
其中,`R.anim.in`和`R.anim.out`分别代表入场和出场的补间动画XML文件,例如:
入场动画(in.xml):
```xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:toYDelta="0"
android:fromYDelta="100%"
android:duration="1500"/>
</set>
```
出场动画(out.xml):
```xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="1500"
android:fromYDelta="0"
android:toYDelta="-100%"/>
</set>
```
这种动画作用于整个Activity,无法对Activity内的特定元素进行单独的入场/出场动画设置。若需对元素进行动画处理,需要在布局XML中为每个元素指定动画,这无疑增加了开发复杂度。
2. Android 5.0之后的转场动画
在Android 5.0及更高版本中,Activity的转场动画主要包括以下两类:
2.1 分解、滑动进入、淡入淡出
这类动画效果包括元素的分解、滑动和透明度变化。开发者可以使用系统提供的动画效果,如`Slide`、`Fade`等,或者自定义转场动画。例如,要实现分解效果,可以这样启动Activity:
```java
Intent intent = new Intent(this, Main3Activity.class);
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, (View) findViewById(R.id.some_view), "transitionName");
startActivity(intent, options.toBundle());
```
这里的关键是`makeSceneTransitionAnimation`方法,它允许指定一个共享的视图元素及其过渡名称,用于动画效果。
2.2 共享元素动画
共享元素动画是Android 5.0引入的一个亮点,它允许在不同Activity之间平滑地过渡共享的UI元素。比如,一个图片在第一个Activity中显示,当切换到第二个Activity时,这个图片仍然保持其位置和大小,同时伴随着平滑的过渡效果。要实现共享元素动画,需要在布局XML中为共享元素设置相同的`transitionName`属性,并在启动Activity时指定:
```xml
<!-- 第一个Activity的布局 -->
<ImageView
android:id="@+id/image_view"
android:transitionName="shared_image"
... />
<!-- 第二个Activity的布局 -->
<ImageView
android:id="@+id/image_view"
android:transitionName="shared_image"
... />
```
启动Activity时:
```java
Intent intent = new Intent(this, SecondActivity.class);
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, (View) findViewById(R.id.image_view), "shared_image");
startActivity(intent, options.toBundle());
```
通过这些新特性,Android开发者能够创建更加吸引人的用户界面,提高应用的视觉体验。在实际开发中,结合Android 5.0之后的转场动画,可以为用户提供更流畅、更具沉浸感的交互体验。
2019-07-19 上传
2021-01-20 上传
点击了解资源详情
2015-11-24 上传
2020-08-29 上传
2021-05-10 上传
2019-04-04 上传
134 浏览量
weixin_38747233
- 粉丝: 8
- 资源: 969
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明