A012-Anim资源
时间:2022-06-02
本文章向大家介绍A012-Anim资源,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
anim资源这里特指Android中的View Animation(视图动画),然而视图动画分为:
- Tween Animation(补间动画)
- Frame Animation(逐帧动画)
Tween Animation
文件路径:res/anim/filename.xml 这样的一个资源指向一个Animation对象 资源引用:
- Java中引用:R.anim.filename
- XML中引用:@anim/filename
语法
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
<alpha
android:fromAlpha="float"
android:toAlpha="float" />
<scale
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"
android:pivotX="float"
android:pivotY="float" />
<translate
android:fromXDelta="float"
android:toXDelta="float"
android:fromYDelta="float"
android:toYDelta="float" />
<rotate
android:fromDegrees="float"
android:toDegrees="float"
android:pivotX="float"
android:pivotY="float" />
<set>
... </set></set
<set> <alpha> <scale> <translate> <rotate>
这些标签都可以作为根标签,代表一种动画,其中<set>
可以包含以上所有标签,我们可以通过 <set>
和其他标签组合设计多种多样的动画效果。
下面逐个解析标签的作用:
<set>
代表一个AnimationSet 属性:
- android:interpolator (插值器)
- android:shareInterpolator(是否在所有的元素中分享插值器)
<alpha>
代表一个AlphaAnimation,淡入淡出动画 属性:
- android:fromAlpha(开始透明度,0.0-完全透明 1.0-不完全透明)
- android:toAlpha(结束透明度,0.0-完全透明 1.0-不完全透明)
<scale>
代表一个ScaleAnimation,缩放动画 属性:
- android:fromXScale(开始时X方向上相对自身的缩放比例,1.0表示没有变化)
- android:toXScale(结束时X方向上相对自身的缩放比例)
- android:fromYScale(开始时Y方向上相对自身的缩放比例)
- android:toYScale(结束时Y方向上相对自身的缩放比例)
- android:pivotX(缩放X轴位置,50表示绝对位置,50%表示相对自身,50%p表示相对父控件)
- android:pivotY(缩放Y轴位置,取值同上)
<translate>
代表一个TranslateAnimation,偏移动画
- android:fromXDelta(动画起始时 X坐标上的位置 )
- android:toXDelta(动画结束时 X坐标上的位置)
- android:fromYDelta(动画起始时 Y坐标上的位置 )
- android:toYDelta(动画结束时 Y坐标上的位置 )
取值举例: android:toXDelta=”100%”,表示自身的100%,也就是从View自己的位置开始 android:toXDelta=”80%p”,表示父层View的80%,是以它父层View为参照的
<rotate>
代表一个RotateAnimation, 旋转动画 属性:
- android:fromDegrees(动画开始时角度)
- android:toDegrees(动画结束时角度)
- android:pivotX(旋转中心的X坐标)
- android:pivotY(旋转中心的Y坐标)
补间动画例子:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.4"
android:fromYScale="1.0"
android:toYScale="0.6"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="700" />
<set
android:interpolator="@android:anim/accelerate_interpolator"
android:startOffset="700">
<scale
android:fromXScale="1.4"
android:toXScale="0.0"
android:fromYScale="0.6"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="400" />
<rotate
android:fromDegrees="0"
android:toDegrees="-45"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="400" />
</set></set>
代码中使用:
ImageView image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);
Frame Animation
文件路径:res/drawable/filename.xml 这样的一个资源指向一个AnimationDrawable对象 资源引用:
- Java中引用:R.drawable.filename
- XML中引用:@drawable/filename
语法
<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot=["true" | "false"] >
<item
android:drawable="@[package:]drawable/drawable_resource_name"
android:duration="integer" /></animation-list>
属性:
- android:oneshot(是否只播放一次)
例子:
<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust3" android:duration="200" /></animation-list>
一个item表示一帧,一帧对应一张图片,duration表示持续的时间。
代码中使用:
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
rocketAnimation.start();
本节课主要讲解了Android中anim资源的知识点和具体使用方法,如需要获取更详细的资料,可以访问以下地址: http://www.android-doc.com/guide/topics/resources/animation-resource.html
- 第十章:Shiro的Cache——深入浅出学Shiro细粒度权限开发框架
- Appboy基于MongoDB的数据密集型实践
- 微信企业号登录授权Java实现获取员工userid根据userid换openid
- 微信支付-微信红包Java版本
- Universe入门
- 分享一款值得分享的写作工具
- 微信二次开发Java自定义菜单事件实现
- 微信OAuth授权获取用户OpenId-JAVA(个人经验)
- 【手写文字识别】-JavaAPI示例代码
- 【Python3-API】情感倾向分析示例代码
- SpringMVC+Hibernate +MySql+ EasyUI实现CRUD(一)
- 【Python3-API】通用文字识别示例代码
- Python入门教程之安装MyEclipse插件和安装Python环境
- AutoFlowLayout-多功能流式布局与网格布局控件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Lambda表达式和FastDfs文件上传
- Postman带token测试接口、找不到生产者、无法连接MySQL、禅道部署
- MyBatis-Plus调试配置,IllegaStateException,StringUtils补充
- NullException、Token的作用、Mapstruct用法
- 1.String类型字符串拼接2.IDEA清除缓存、热部署3.File的用法 4.Dubbo查询服务状态
- 1.Dubbo 常见错误及解决方法
- SpringBoot学习一:创建工程、pom文件
- SpringBoot学习二:基础配置
- Spring Boot 学习三:静态资源、整合 Thymeleaf 页面模板、@RestControllerAdvice
- SpringBoot学习四:日志框架、SpringBoot自动化配置
- SpringBoot学习五:错误处理、跨域支持
- Spring Security安全
- SpringBoot定时任务
- MySQL优化以及索引的使用
- 前端表单提交String类型数据后端转日期数据