Android 5.0 Activity转场动画实战:分解与共享元素效果
38 浏览量
更新于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
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器