Android 5.0 Activity转场动画实战:分解与共享元素效果
PDF格式 | 170KB |
更新于2024-08-29
| 81 浏览量 | 举报
"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之后的转场动画,可以为用户提供更流畅、更具沉浸感的交互体验。
相关推荐


316 浏览量







weixin_38747233
- 粉丝: 8
最新资源
- iOS11以上版本实现自带二维码扫描功能及相册扫描
- 朗朗V29万能液晶主板全套数据与特显摇控新程序包
- C#实现CAD参数文件批量插入操作桌面程序
- Swift教程:使用Storyboard开发天气预报APP
- 提升ESPN玩家链接体验的Better ESPN Player Links-crx插件
- VB刷PV源码:增强网页访问量的学习工具
- 快速生成RRDTool示例数据集的bash脚本介绍
- 深入解析brain-3.0与taro3.0结合使用技巧
- Android架构模式实践:MVP与MVVP模式解析
- iOS引导页实现与TableviewCell配置
- 高德地图定位与周边POI搜索测试分享
- Mocha与Karma增量测试样板快速入门指南
- 掌握Java打包全攻略:jar到exe,附教程
- Annot-E-crx插件:网页注释工具的扩展程序
- 音像技术在多媒体应用中的发展与探索
- 中国海洋大学软件工程期末试卷参考解析