Android补间动画实战:位移、缩放、旋转、透明详解
192 浏览量
更新于2024-08-29
收藏 78KB PDF 举报
"Android补间动画的基本应用,包括位移、缩放、旋转和透明效果。补间动画是指在物体变换形态过程中填充过渡效果的动画形式。本文将介绍如何实现这些基本操作。"
在Android中,补间动画是通过操纵View对象的位置、大小和透明度等属性来创建平滑的过渡效果。以下是关于位移、缩放、旋转和透明的详细说明:
### 位移 (Translation)
位移动画`TranslateAnimation`用于改变View的位置。在创建位移动画时,需要设置四个参数:
1. 起点X坐标:`fromXDelta`,可以是绝对值或相对于自身位置的相对值。
2. 终点X坐标:`toXDelta`,同样可以是绝对值或相对于自身位置的相对值。
3. 起点Y坐标:`fromYDelta`。
4. 终点Y坐标:`toYDelta`。
例如:
```java
TranslateAnimation ta = new TranslateAnimation(10, 150, 20, 140);
```
这里的10和150分别代表X轴上的起点和终点坐标,它们是相对于ImageView真实位置的偏移量。20和140则对应Y轴上的坐标。
### 缩放 (Scaling)
缩放动画`ScaleAnimation`用于改变View的大小。设定如下参数:
1. 起始X轴缩放比例:`fromXScale`。
2. 结束X轴缩放比例:`toXScale`。
3. 起始Y轴缩放比例:`fromYScale`。
4. 结束Y轴缩放比例:`toYScale`。
同时,还可以指定缩放的中心点,例如:
```java
ScaleAnimation sa = new ScaleAnimation(0.1f, 4, 0.1f, 4, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
```
这里设置了View在X和Y轴上分别从10%缩放到400%,且缩放中心点位于View的中心。
### 旋转 (Rotation)
旋转动画`RotateAnimation`允许View围绕指定轴旋转。关键参数有:
1. 起始旋转角度:`fromDegrees`。
2. 结束旋转角度:`toDegrees`。
3. 旋转中心点的X坐标:`pivotXType` 和 `pivotXValue`。
4. 旋转中心点的Y坐标:`pivotYType` 和 `pivotYValue`。
例如:
```java
RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
```
这会使View绕其中心点旋转360度。
### 透明 (Alpha)
透明动画`AlphaAnimation`控制View的透明度。仅需设置:
1. 起始透明度:`fromAlpha`(0.0f完全透明,1.0f完全不透明)。
2. 结束透明度:`toAlpha`。
示例:
```java
AlphaAnimation aa = new AlphaAnimation(1.0f, 0.0f);
```
这会让View从完全不透明变为完全透明。
### 动画控制
除了创建动画对象,还需要配置动画的播放行为:
1. 持续时间:`setDuration(int duration)`,单位为毫秒。
2. 重复次数:`setRepeatCount(int repeatCount)`,默认为0,即不重复。
3. 重复模式:`setRepeatMode(int repeatMode)`,`REVERSE`会反向播放,`INFINITE`无限循环。
4. 动画结束后是否保持最后状态:`setFillAfter(boolean fillAfter)`,若为`true`,动画结束后View保持动画结束时的位置和大小。
播放动画:
```java
iv.startAnimation(ta);
```
以上代码将对ImageView `iv`应用创建的动画`ta`。
通过组合和调整这些参数,开发者可以创建出各种复杂的动画效果,为Android应用增添动态美。
2019-03-18 上传
2018-06-07 上传
2016-06-26 上传
2023-10-04 上传
2023-05-18 上传
2023-05-17 上传
2023-10-10 上传
2023-06-10 上传
2023-08-18 上传
weixin_38603924
- 粉丝: 9
- 资源: 892
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍