Android5.0 Activity转场动画实战
122 浏览量
更新于2024-09-05
收藏 168KB PDF 举报
"Android5.0之Activity的转场动画的示例"
在Android开发中,Activity的转场动画是用户体验的重要组成部分。自Android 5.0(API级别21)开始,Google引入了新的转场动画系统,为开发者提供了更多样化和精致的动画效果。本文将探讨这一版本中引入的两种主要的转场动画类型:分解动画和共享元素动画,并通过示例代码展示如何实现这些效果。
### 1. 旧版转场动画回顾
在Android 5.0之前,Activity之间的切换通常通过`overridePendingTransition()`方法配合自定义的补间动画来实现。例如,一个简单的入场和出场动画可能如下所示:
入场动画(in.xml):
```xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:toYDelta="0"
android:fromYDelta="100%"
android:duration="1500"/>
</set>
```
出场动画(out.xml):
```xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="1500"
android:fromYDelta="0"
android:toYDelta="-100%"/>
</set>
```
这些动画作用于整个Activity,无法精确控制单个View的动画效果。若需对Activity内的元素进行独立动画处理,需要为每个元素单独设置动画,这无疑增加了开发复杂性。
### 2. Android 5.0之后的转场动画
#### 2.1 分解动画
分解动画是新转场动画系统中的一个特性,它允许Activity的内容在进入或退出时分解成各个部分,形成独特的视觉效果。例如,一个简单的分解动画可以通过以下方式实现:
```java
Intent intent = new Intent(this, Main3Activity.class);
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this);
startActivity(intent, options.toBundle());
```
此处的`makeSceneTransitionAnimation()`方法需要传入起始Activity以及一个或多个共享元素名称,以创建一个动画选项对象,然后在启动Activity时传递这个对象。
#### 2.2 共享元素动画
共享元素动画是另一种强大的新功能,允许两个Activity之间的一个或多个元素保持一致,形成平滑过渡。例如,当用户点击一个图片,图片可以在两个Activity之间无缝移动,给人一种连续的体验。要实现共享元素动画,需要以下步骤:
1. 在源Activity中,使用`transitionName`属性为要共享的元素设置一个唯一的名称。
2. 启动目标Activity时,通过`Intent.putExtra()`方法传递共享元素的名称。
3. 在目标Activity中,同样为对应元素设置相同的`transitionName`。
4. 使用`ActivityOptions.makeSceneTransitionAnimation()`创建动画选项,并在启动Activity时传递。
示例代码如下:
源Activity:
```xml
<!-- activity_main.xml -->
<ImageView
android:id="@+id/imageView"
android:transitionName="shared_image"
... />
```
目标Activity:
```xml
<!-- activity_main3.xml -->
<ImageView
android:id="@+id/imageView3"
android:transitionName="shared_image"
... />
```
启动目标Activity:
```java
// 获取源Activity中的ImageView
ImageView imageView = findViewById(R.id.imageView);
Intent intent = new Intent(this, Main3Activity.class);
intent.putExtra("shared_element_name", "shared_image");
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this, imageView, "shared_image");
startActivity(intent, options.toBundle());
```
### 结论
Android 5.0引入的新转场动画系统为开发者提供了更加丰富和灵活的动画设计选择,提高了应用的用户体验。通过分解动画和共享元素动画,开发者可以创造出更加流畅、引人入胜的界面转换效果,使应用在视觉上更具吸引力。
2015-11-24 上传
点击了解资源详情
2020-08-29 上传
2021-05-10 上传
2019-04-04 上传
134 浏览量
2012-06-05 上传
2016-10-29 上传
2013-04-21 上传
weixin_38534444
- 粉丝: 2
- 资源: 889
最新资源
- Haskell编写的C-Minus编译器针对TM架构实现
- 水电模拟工具HydroElectric开发使用Matlab
- Vue与antd结合的后台管理系统分模块打包技术解析
- 微信小游戏开发新框架:SFramework_LayaAir
- AFO算法与GA/PSO在多式联运路径优化中的应用研究
- MapleLeaflet:Ruby中构建Leaflet.js地图的简易工具
- FontForge安装包下载指南
- 个人博客系统开发:设计、安全与管理功能解析
- SmartWiki-AmazeUI风格:自定义Markdown Wiki系统
- USB虚拟串口驱动助力刻字机高效运行
- 加拿大早期种子投资通用条款清单详解
- SSM与Layui结合的汽车租赁系统
- 探索混沌与精英引导结合的鲸鱼优化算法
- Scala教程详解:代码实例与实践操作指南
- Rails 4.0+ 资产管道集成 Handlebars.js 实例解析
- Python实现Spark计算矩阵向量的余弦相似度