博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android Animation 动画效果介绍
阅读量:6479 次
发布时间:2019-06-23

本文共 4323 字,大约阅读时间需要 14 分钟。

android Animation 动画效果介绍
Androidanimation由四种类型组成
XML 
alpha 渐变透明度动画效果
scale 渐变尺寸伸缩动画效果
translate 画面转换位置移动动画效果
rotate 画面转移旋转动画效果



JavaCode 

AlphaAnimation 渐变透明度动画效果
ScaleAnimation 渐变尺寸伸缩动画效果
TranslateAnimation 画面转换位置移动动画效果
RotateAnimation 画面转移旋转动画效果


Android动画模式

Animation主要有两种动画模式:

一种是tweened animation(渐变动画) 

XML JavaCode
alpha AlphaAnimation
scale ScaleAnimation



一种是frame by frame(画面转换动画) 

XML JavaCode
translate TranslateAnimation
rotate RotateAnimation




如何在XML文件中定义动画

① 打开Eclipse,新建Android工程
② res目录中新建anim文件夹
③ anim目录中新建一个myanim.xml(注意文件名小写)
④ 加入XML的动画代码

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <alpha/>
  4. <scale/>
  5. <translate/>
  6. <rotate/>
  7. </set>
复制代码

Android动画解析--XML
<alpha>

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >
  3. <alpha
  4. android:fromAlpha="0.1" <!--fromAlpha(浮点型值) 属性为动画起始时透明度, 0.0表示完全透明 -->
  5. android:toAlpha="1.0" <!-- toAlpha(浮点型值) 属性为动画结束时透明度, 1.0表示完全不透明. fromAlpha 和 toAlpha 的取值在0.0-1.0之间的float数据类型的数字 -->
  6. android:duration="3000"<!-- duration(长整型值) 属性为动画持续时间,时间以毫秒为单位-->
  7. /> 
  8. </set>
  9.  
复制代码

<scale>

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <scale 
  4. android:interpolator=
  5. "@android:anim/accelerate_decelerate_interpolator"
  6. android:fromXScale="0.0"
  7. android:toXScale="1.4"
  8. android:fromYScale="0.0"
  9. android:toYScale="1.4"
  10. android:pivotX="50%"
  11. android:pivotY="50%"
  12. android:fillAfter="false"
  13. android:duration="700" />
  14. </set>
  15. <!-- 尺寸伸缩动画效果 scale
  16. 属性:interpolator 指定一个动画的插入器
  17. 在我试验过程中,使用android.res.anim中的资源时候发现
  18. 有三种动画插入器:
  19. accelerate_decelerate_interpolator 加速-减速 动画插入器
  20. accelerate_interpolator 加速-动画插入器
  21. decelerate_interpolator 减速- 动画插入器
  22. 其他的属于特定的动画效果
  23. 浮点型值:
  24.  
  25. fromXScale 属性为动画起始时 X坐标上的伸缩尺寸 
  26. toXScale 属性为动画结束时 X坐标上的伸缩尺寸 
  27.  
  28. fromYScale 属性为动画起始时Y坐标上的伸缩尺寸 
  29. toYScale 属性为动画结束时Y坐标上的伸缩尺寸 
  30.  
  31. 说明:
  32. 以上四种属性值 
  33.  
  34. 0.0表示收缩到没有 
  35. 1.0表示正常无伸缩 
  36. 值小于1.0表示收缩 
  37. 值大于1.0表示放大
  38.  
  39. pivotX 属性为动画相对于物件的X坐标的开始位置
  40. pivotY 属性为动画相对于物件的Y坐标的开始位置
  41.  
  42. 说明:
  43. 以上两个属性值 从0%-100%中取值
  44. 50%为物件的X或Y方向坐标上的中点位置
  45.  
  46. 长整型值:
  47. duration 属性为动画持续时间
  48. 说明: 时间以毫秒为单位
  49.  
  50. 布尔型值:
  51. fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用
  52. -->
复制代码

<translate>

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <translate
  4. android:fromXDelta="30"
  5. android:toXDelta="-80"
  6. android:fromYDelta="30"
  7. android:toYDelta="300"
  8. android:duration="2000"
  9. />
  10. <!-- translate 位置转移动画效果
  11. 整型值:
  12. fromXDelta 属性为动画起始时 X坐标上的位置 
  13. toXDelta 属性为动画结束时 X坐标上的位置
  14. fromYDelta 属性为动画起始时 Y坐标上的位置
  15. toYDelta 属性为动画结束时 Y坐标上的位置
  16. 注意:
  17. 没有指定fromXType toXType fromYType toYType 时候,
  18. 默认是以自己为相对参照物 
  19. 长整型值:
  20. duration 属性为动画持续时间
  21. 说明: 时间以毫秒为单位
  22. -->
  23. </set>
复制代码

<rotate>

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <rotate 
  4. android:interpolator="@android:anim/accelerate_decelerate_interpolator"
  5. android:fromDegrees="0" 
  6. android:toDegrees="+350" 
  7. android:pivotX="50%" 
  8. android:pivotY="50%" 
  9. android:duration="3000" /> 
  10. <!-- rotate 旋转动画效果
  11. 属性:interpolator 指定一个动画的插入器
  12. 在我试验过程中,使用android.res.anim中的资源时候发现
  13. 有三种动画插入器:
  14. accelerate_decelerate_interpolator 加速-减速 动画插入器
  15. accelerate_interpolator 加速-动画插入器
  16. decelerate_interpolator 减速- 动画插入器
  17. 其他的属于特定的动画效果
  18.  
  19. 浮点数型值:
  20. fromDegrees 属性为动画起始时物件的角度 
  21. toDegrees 属性为动画结束时物件旋转的角度 可以大于360度 
  22.  
  23.  
  24. 说明:
  25. 当角度为负数——表示逆时针旋转
  26. 当角度为正数——表示顺时针旋转 
  27. (负数from——to正数:顺时针旋转) 
  28. (负数from——to负数:逆时针旋转) 
  29. (正数from——to正数:顺时针旋转) 
  30. (正数from——to负数:逆时针旋转) 
  31.  
  32. pivotX 属性为动画相对于物件的X坐标的开始位置
  33. pivotY 属性为动画相对于物件的Y坐标的开始位置
  34.  
  35. 说明: 以上两个属性值 从0%-100%中取值
  36. 50%为物件的X或Y方向坐标上的中点位置
  37.  
  38. 长整型值:
  39. duration 属性为动画持续时间
  40. 说明: 时间以毫秒为单位
  41. -->
  42. </set>
复制代码

如何使用XML中的动画效果

  1. public static Animation loadAnimation (Context context, int id) 
  2. //第一个参数Context为程序的上下文 
  3. //第二个参数id为动画XML文件的引用
  4. //例子:
  5. myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action);
  6. //使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件
复制代码

如何在Java代码中定义动画

  1. //在代码中定义 动画实例对象
  2. private Animation myAnimation_Alpha;
  3. private Animation myAnimation_Scale;
  4. private Animation myAnimation_Translate;
  5. private Animation myAnimation_Rotate;
  6.  
  7. //根据各自的构造方法来初始化一个实例对象
  8. myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
  9.  
  10. myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
  11. Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
  12.  
  13. myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);
  14.  
  15. myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,
  16. Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
复制代码

 

字数太多,写不完,请继续下一篇


 

转载地址:http://zuwuo.baihongyu.com/

你可能感兴趣的文章
Java 中 Emoji 的正则表达式
查看>>
Mixin Network第一届开发者大赛作品介绍- dodice, diceos和Fox.one luckycoin
查看>>
安卓Glide(4.7.1)使用笔记 01 - 引入项目
查看>>
中金易云:为出版社找到下一本《解忧杂货店》
查看>>
Flex布局
查看>>
Material Design之 AppbarLayout 开发实践总结
查看>>
Flutter之MaterialApp使用详解
查看>>
DataBinding最全使用说明
查看>>
原生Js交互之DSBridge
查看>>
Matlab编程之——卷积神经网络CNN代码解析
查看>>
三篇文章了解 TiDB 技术内幕 —— 说计算
查看>>
copy strong weak assign的区别
查看>>
OpenCV 入门
查看>>
css 3D transform变换
查看>>
ele表格合并行之后的selection选中
查看>>
正则表达式分解剖析(一文悟透正则表达式)
查看>>
解决UILable标点符号居中的问题
查看>>
HTML5新特性教程
查看>>
ImageOptim-无损图片压缩Mac版
查看>>
12 Go语言map底层浅析
查看>>