`

Android动画animation

阅读更多

Android的animation由四种类型组成  

XML中  
alpha  (android.view.animation.AlphaAnimation)

渐变透明度动画效果 

 

<alpha> 
<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="[url=]http://schemas.android.com/apk/res/android[/url]" > 
<alpha 
android:fromAlpha="0.1" 
android:toAlpha="1.0" 
android:duration="3000" 

/> 
<!-- 透明度控制动画效果 alpha 
浮点型值: 
fromAlpha 属性为动画起始时透明度 
toAlpha 属性为动画结束时透明度 
说明: 
0.0表示完全透明 
1.0表示完全不透明 
以上值取0.0-1.0之间的float数据类型的数字 

长整型值: 
duration 属性为动画持续时间 
说明: 
时间以毫秒为单位 
--> 
</set> 


scale  (android.view.animation.ScaleAnimation)

渐变尺寸伸缩动画效果  

<scale> 
<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="[url=]http://schemas.android.com/apk/res/android[/url]"> 
<scale 
android:interpolator= 
"@android:anim/accelerate_decelerate_interpolator" 
android:fromXScale="0.0" 
android:toXScale="1.4" 
android:fromYScale="0.0" 
android:toYScale="1.4" 
android:pivotX="50%" 
android:pivotY="50%" 
android:fillAfter="false" 
android:startOffset=“700” 
android:duration="700" /> 
</set> 

<!-- 尺寸伸缩动画效果 scale 
属性:interpolator 指定一个动画的插入器 
在我试验过程中,使用android.res.anim中的资源时候发现 
有三种动画插入器: 
accelerate_decelerate_interpolator 加速-减速 动画插入器 
accelerate_interpolator 加速-动画插入器 
decelerate_interpolator 减速- 动画插入器 
其他的属于特定的动画效果 
浮点型值: 

fromXScale 属性为动画起始时 X坐标上的伸缩尺寸 
toXScale 属性为动画结束时 X坐标上的伸缩尺寸 

fromYScale 属性为动画起始时Y坐标上的伸缩尺寸 
toYScale 属性为动画结束时Y坐标上的伸缩尺寸 
startOffset 属性为从上次动画停多少时间开始执行下个动画 

说明: 
以上四种属性值 

0.0表示收缩到没有 
1.0表示正常无伸缩 
值小于1.0表示收缩 
值大于1.0表示放大 

pivotX 属性为动画相对于物件的X坐标的开始位置 
pivotY 属性为动画相对于物件的Y坐标的开始位置 

说明: 
以上两个属性值 从0%-100%中取值 
50%为物件的X或Y方向坐标上的中点位置 

长整型值: 
duration 属性为动画持续时间 
说明: 时间以毫秒为单位 

布尔型值: 
fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用 
--> 

translate  (android.view.animation.TranslateAnimation)

画面转换位置移动动画效果  

 

<translate> 

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="[url=]http://schemas.android.com/apk/res/android[/url]"> 
<translate 
android:fromXDelta="30" 
android:toXDelta="-80" 
android:fromYDelta="30" 
android:toYDelta="300" 
android:duration="2000" 
/> 
<!-- translate 位置转移动画效果 
整型值: 
fromXDelta 属性为动画起始时 X坐标上的位置 
toXDelta 属性为动画结束时 X坐标上的位置 
fromYDelta 属性为动画起始时 Y坐标上的位置 
toYDelta 属性为动画结束时 Y坐标上的位置 
注意: 
没有指定fromXType toXType fromYType toYType 时候, 
默认是以自己为相对参照物 
长整型值: 
duration 属性为动画持续时间 
说明: 时间以毫秒为单位 
--> 
</set>  
rotate  (android.view.animation.RotateAnimation)

画面转移旋转动画效果

 

<rotate> 
<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="[url=]http://schemas.android.com/apk/res/android[/url]"> 
<rotate 
android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
android:fromDegrees="0" 
android:toDegrees="+350" 
android:pivotX="50%" 
android:pivotY="50%" 
android:duration="3000" /> 
<!-- rotate 旋转动画效果 
属性:interpolator 指定一个动画的插入器 
在我试验过程中,使用android.res.anim中的资源时候发现 
有三种动画插入器: 
accelerate_decelerate_interpolator 加速-减速 动画插入器 
accelerate_interpolator 加速-动画插入器 
decelerate_interpolator 减速- 动画插入器 
其他的属于特定的动画效果 

浮点数型值: 
fromDegrees 属性为动画起始时物件的角度 
toDegrees 属性为动画结束时物件旋转的角度 可以大于360度 

说明: 
当角度为负数——表示逆时针旋转 
当角度为正数——表示顺时针旋转 
(负数from——to正数:顺时针旋转) 
(负数from——to负数:逆时针旋转) 
(正数from——to正数:顺时针旋转) 
(正数from——to负数:逆时针旋转) 

pivotX 属性为动画相对于物件的X坐标的开始位置 
pivotY 属性为动画相对于物件的Y坐标的开始位置 

说明: 以上两个属性值 从0%-100%中取值 
50%为物件的X或Y方向坐标上的中点位置 

长整型值: 
duration 属性为动画持续时间 
说明: 时间以毫秒为单位 
--> 
</set> 

 

 

如何使用XML中的动画效果 
public static Animation loadAnimation (Context context, int id) 
//第一个参数Context为程序的上下文 
//第二个参数id为动画XML文件的引用 
//例子: 
myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action); 
//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件 

 

 

Android动画解析--JavaCode 

 

AlphaAnimation 

 

① AlphaAnimation类对象定义 

private AlphaAnimation myAnimation_Alpha; 

 

② AlphaAnimation类对象构造 

AlphaAnimation(float fromAlpha, float toAlpha) 

//第一个参数fromAlpha为 动画开始时候透明度 

//第二个参数toAlpha为 动画结束时候透明度 

myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f); 

//说明: 

// 0.0表示完全透明 

// 1.0表示完全不透明 

 

③ 设置动画持续时间 

myAnimation_Alpha.setDuration(5000); 

 

//设置时间持续时间为 5000毫秒 

 

---------------------------------------------------------------------------------------------------------------

ScaleAnimation

① ScaleAnimation类对象定义 

private AlphaAnimation myAnimation_Alpha; 

 

② ScaleAnimation类对象构造 

ScaleAnimation(float fromX, float toX, float fromY, float toY, 

int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) 

//第一个参数fromX为动画起始时 X坐标上的伸缩尺寸 

//第二个参数toX为动画结束时 X坐标上的伸缩尺寸 

//第三个参数fromY为动画起始时Y坐标上的伸缩尺寸 

//第四个参数toY为动画结束时Y坐标上的伸缩尺寸

//第五个参数pivotXType为动画在X轴相对于物件位置类型 

//第六个参数pivotXValue为动画相对于物件的X坐标的开始位置 

//第七个参数pivotXType为动画在Y轴相对于物件位置类型 

//第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置

myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f, 

Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

 

③ 设置动画持续时间 

myAnimation_Scale.setDuration(700); 

//设置时间持续时间为 700毫秒 

-------------------------------------------------------------------------------------------------------------------

TranslateAnimation 

 

① TranslateAnimation类对象定义 

private AlphaAnimation myAnimation_Alpha;

② TranslateAnimation类对象构造 

TranslateAnimation(float fromXDelta, float toXDelta, 

float fromYDelta, float toYDelta) 

//第一个参数fromXDelta为动画起始时 X坐标上的移动位置 

//第二个参数toXDelta为动画结束时 X坐标上的移动位置 

//第三个参数fromYDelta为动画起始时Y坐标上的移动位置 

//第四个参数toYDelta为动画结束时Y坐标上的移动位置 

③ 设置动画持续时间 

myAnimation_Translate.setDuration(2000); 

//设置时间持续时间为 2000毫秒  

---------------------------------------------------------------------------------------------------------------

RotateAnimation 

① RotateAnimation类对象定义 

private AlphaAnimation myAnimation_Alpha; 

② RotateAnimation类对象构造 

RotateAnimation(float fromDegrees, float toDegrees, 

int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) 

//第一个参数fromDegrees为动画起始时的旋转角度 

//第二个参数toDegrees为动画旋转到的角度 

//第三个参数pivotXType为动画在X轴相对于物件位置类型 

//第四个参数pivotXValue为动画相对于物件的X坐标的开始位置 

//第五个参数pivotXType为动画在Y轴相对于物件位置类型 

//第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置 

myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f, 

Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

③ 设置动画持续时间 

myAnimation_Rotate.setDuration(3000); 

//设置时间持续时间为 3000毫秒 

--------------------------------------------------------------------------------------------------------------------

如何使用Java代码中的动画效果 

 

使用从View父类继承过来的方法startAnimation()来为View或是子类View等等添加一个动画效果 

动画效果的次序

 

android:animationOrder="random" //随机

android:animationOrder="reverse"//逆向

gridLayoutAnimation

android:directionPriority="row"

android:directionPriority="column"

android:direction="right_to_left|bottom_to_top"

 

分享到:
评论

相关推荐

    后勤智能管理系统-.. (2).pdf

    后勤智能管理系统-.. (2).pdf

    Markdown.Monster.v2.0.9.0-CRD.rar

    Markdown.Monster.v2.0.9.0-CRD

    毕业设计-主成分分析算法Python代码.rar

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、本项目仅用作交流学习参考,请切勿用于商业用途。

    四川大学期末考试试题(开卷).docx

    四川大学期末考试试题(开卷).docx

    c#入门之实现计算器源码

    c#入门之实现计算器源码

    Python项目-游戏源码-10 植物大战僵尸.zip

    Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

    基于ssm的期末考试考务管理系统源代码(完整前后端+mysql+说明文档+LW).zip

    主要需求:3个权限 该系统功能模块主要为三部分,即学生模块、教师模块、管理员模块。 学生模块包括:查看考试安排信息(随机安排就行)、学生 缓考在线申请(教师查看)、在线签订承诺书(学生签字); 教师模块包括:查询监考表、考试违纪学生信息录入; 管理员模块包括:考试时间地点管理、 调整排班信息、信息管理等(主要是增删改查) 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7

    springboot-基于SpringBoot的小型民营加油站管理系统.zip

    springboot-基于SpringBoot的小型民营加油站管理系统.zip

    framework-all

    framework_all

    【Ubuntu】【交叉编译】实现跑马灯并以开发板为服务器通过cgi实现远程控制.html

    【Ubuntu】【交叉编译】实现跑马灯并以开发板为服务器通过cgi实现远程控制.html

    基于ssm的学生宿舍管理系统设计与实现源代码(java+jsp+mysql+说明文档+LW).zip

    实现了用户在线选择试题并完成答题,在线查看考核分数。管理员管理常用语句管理、常用语句收藏管理、常用语句留言管理、成语学习管理、成语学习收藏管理、成语学习留言管理、字典管理、论坛管理、基础管理、基础收藏管理、基础留言管理、情景学习管理、情景学习收藏管理、情景学习留言管理、诗词学习管理、诗词学习收藏管理、诗词学习留言管理、用户管理、管理员管理等功能。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7

    RTMPOSE rtmpose-m-2xb64-210e-mpii-256x256-A5000

    RTMPOSE rtmpose-m-2xb64-210e-mpii-256x256-A5000

    jdk-17.0.4.1

    jdk-17.0.4.1

    户外广告全球市场研究报告:2023年市场规模约为14121.8亿元

    户外广告全球市场研究报告:2023年市场规模约为14121.8亿元 在数字时代,户外广告作为传统与现代的交汇点,正以独特的魅力吸引着全球广告主的目光。从繁华都市的霓虹灯到偏远乡村的路牌,户外广告无处不在,以其直观、生动的形式,精准触达消费者的生活与出行场景。然而,在激烈的市场竞争中,如何把握市场趋势,实现精准传播,成为广告主面临的一大挑战。 市场概况 近年来,全球广告市场在经济周期动荡中展现出强大的韧性,不断触及新高度。据QYR最新调研,2023年全球广告市场规模已增至约9044.9亿美元,其中户外广告市场占据了一席之地。作为全球广告市场的重要组成部分,中国广告市场规模同样在快速扩张,2023年市场规模约为14121.8亿元,稳居世界前列。户外广告市场更是表现抢眼,2023年全球户外广告市场规模约为547.8亿美元,中国市场规模则达到约820.5亿元,展现出强劲的增长势头。 技术创新与趋势 随着数字化技术的广泛应用,户外广告的形式和内容不断升级,从传统的平面广告到如今的视频广告,再到未来的智能互动广告,户外广告正逐步走向智能化、个性化。视频广告以其音频视觉双重刺激的特点,通过故事情节、

    基于ssm的班主任助理系统的设计与实现+jsp源代码(完整前后端+mysql+说明文档+LW).zip

    学生信息管理: 添加学生信息:录入新学生的信息到系统。 修改学生信息:对现有学生信息进行更新和修改。 请假管理: 新增请假记录:记录学生的请假信息。 审批请假:对学生的请假申请进行审批。 请假统计:对请假记录进行统计分析。 申请假统计:可能是对请假申请的统计,可能包括未批准的请假。 成绩管理: 新增成绩:录入学生的成绩信息。 修改成绩:对学生的成绩进行修改。 删除成绩:从系统中移除学生的成绩记录。 家长信息管理: 新增家长信息:录入家长的联系信息。 修改家长信息:更新家长的联系信息。 删除家长信息:移除家长的联系信息。 学业预警管理: 新增学业预警:对可能存在学业问题的学生设置预警。 修改学业预警:更新学业预警信息。 删除学业预警:移除学业预警。 实习管理: 新增实习信息:录入学生的实习信息。 修改实习信息:更新学生的实习信息。 删除实习信息:移除学生的实习信息。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11...

    基于ssm的学生请假系统+jsp源代码(完整前后端+mysql+说明文档+LW).zip

    系统实现: 老师信息管理:老师信息的查询管理,可以删除老师信息、修改老师信息、新增老师信息。 学生信息管理:学生信息的查询管理,可以删除学生信息、修改学生信息、新增学生信息。 请假信息管理:学生的学院、专业、班级、请假类型进行条件查询,还可以对请假数据进行修改、审批、驳回、删除等功能,学生可以进行申请请假信息操作等等。 留言信息管理:对学生添加的留言信息进行回复功能,只有管理员和老师可以进行回复。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7

    喜来登五星酒店酒店数字客房管理系统.pdf

    喜来登五星酒店酒店数字客房管理系统.pdf

    Python项目-实例-07 抖音表白.zip

    Python课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

    vscode的概要介绍与分析

    以下是一个关于VSCode(Visual Studio Code)的资源描述和项目源码的简要介绍: 资源描述 VSCode是一款由微软开发的开源、免费且功能强大的源代码编辑器,它以其轻量级、高效、多语言支持、智能代码补全、内置调试工具、丰富的扩展市场以及跨平台兼容性等特点,赢得了广大开发者的青睐。在资源方面,VSCode提供了详尽的官方文档,涵盖了从安装配置到高级功能的全面指南。此外,互联网上有大量的在线教程、视频教程以及社区论坛和问答网站,如CSDN博客、Stack Overflow等,为开发者提供了丰富的学习资源和交流平台。 项目源码概述 由于VSCode是开源的,其源码可以在GitHub等代码托管平台上找到。VSCode的源码结构清晰,包含了构建脚本、内置插件、App元信息、平台相关静态资源、工具脚本、源码目录等多个部分。其中,源码目录是核心部分,包含了编辑器、工作区、平台支持等多个模块的代码。每个模块都有详细的注释和文档,方便开发者理解和扩展。 VSCode的源码采用了TypeScript语言编写,并使用了Electron框架来构建跨平台桌面应用程序。开发者可以根据自己的

    Java系统源码+旅游管理系统

    Java系统源码+旅游管理系统 内容概要: 本资源包含了完整的Java前后端源码及说明文档,适用于想要快速搭建并部署Java Web应用程序的开发者、学习者。 技术栈: 后端:Java生态系统,包含Spring Boot、Shiro、MyBatis等,数据库使用Mysql 前端:Vue、Bootstrap、Jquery等 适用场景示例: 1、毕业生希望快速启动一个新的Java Web应用程序。 2、团队寻找一个稳定的模板来加速产品开发周期。 3、教育机构或个人学习者用于教学目的或自学练习。 4、创业公司需要一个可以立即投入使用的MVP(最小可行产品)。

Global site tag (gtag.js) - Google Analytics