免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 911 | 回复: 0
打印 上一主题 下一主题

Android动画入门(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:51 |只看该作者 |倒序浏览

Android中动画的实现分两种方式,一种方式是补间动画 Teen Animation,就是说你定义一个开始和结束,中间的部分由程序运算得到。另一种叫逐帧动画 Frame Animation,就是说一帧一帧的连起来播放就变成了动画

动画类型 

Android animation 由四种类型组成 

XML 

alpha渐变透明度动画效果
scale渐变尺寸伸缩动画效果
translate画面转换位置移动动画效果
rotate画面转移旋转动画效果



Java Code

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


Android动画模式 

Animation主要有两种动画模式: 

一种是tweened animation( 渐变动画 )

XMLJavaCode
alphaAlphaAnimation
scaleScaleAnimation



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

XMLJavaCode
translateTranslateAnimation
rotateRotateAnimation




如何在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> 

<scale> 
<translate>

  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"
  5. android:toAlpha="1.0"
  6. android:duration="3000"
  7. />
  8. <!-- 透明度控制动画效果 alpha
  9.        浮点型值:
  10.          fromAlpha 属性为动画起始时透明度
  11.          toAlpha 属性为动画结束时透明度
  12.          说明:
  13.             0.0表示完全透明
  14.             1.0表示完全不透明
  15.          以上值取0.0-1.0之间的float数据类型的数字
  16.       
  17.        长整型值:
  18.          duration   属性为动画持续时间
  19.          说明:    
  20.             时间以毫秒为单位
  21. -->
  22. </set>

  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.                    0.0表示收缩到没有
  34.                    1.0表示正常无伸缩    
  35.                    值小于1.0表示收缩  
  36.                    值大于1.0表示放大
  37.       
  38.          pivotX     属性为动画相对于物件的X坐标的开始位置
  39.          pivotY     属性为动画相对于物件的Y坐标的开始位置
  40.       
  41.          说明:
  42.                    以上两个属性值 从0%-100%中取值
  43.                    50%为物件的X或Y方向坐标上的中点位置
  44.       
  45.        长整型值:
  46.          duration   属性为动画持续时间
  47.          说明: 时间以毫秒为单位
  48.        布尔型值:
  49.          fillAfter 属性 当设置 为true ,该动画转化在动画结束后被应用
  50. -->

  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.                   (负数from——to正数:顺时针旋转)
  27.                   (负数from——to负数:逆时针旋转)
  28.                   (正数from——to正数:顺时针旋转)
  29.                   (正数from——to负数:逆时针旋转)   
  30.          pivotX     属性为动画相对于物件的X坐标的开始位置
  31.          pivotY     属性为动画相对于物件的Y坐标的开始位置
  32.            
  33.          说明:        以上两个属性值 从0%-100%中取值
  34.                      50%为物件的X或Y方向坐标上的中点位置
  35.        长整型值:
  36.          duration   属性为动画持续时间
  37.          说明:    时间以毫秒为单位
  38. -->
  39. </set>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP