Android动画主要分为两种:帧动画和补间动画
一、帧动画:就像放映电影一样;
使用步骤:
1,在res中创建文件夹drawable
2,在此文件夹下面创建文件(例如:frame_animation_useing.xml)
创建时选取标签
frame_animation_useing.xml:
android:oneshot="false"
android:variablePadding="false"
android:visible="true" >
<!--
visible boolean型,是否显现
variablePadding boolean型,默认为false,当设置为true时,则drawable的padding值随当前选择的状态而改变。
oneshot 帧动画的自动执行,如果为true,表示动画只执行一次停止在最后一帧上;若为false表示动画循环播放
-->
<item
android:drawable="@drawable/a"
android:duration="100"
/>
<item
android:drawable="@drawable/b"
android:duration="100"/>
<item
android:drawable="@drawable/c"
android:duration="100"/>
<item
android:drawable="@drawable/d"
android:duration="100"/>
<item
android:drawable="@drawable/e"
android:duration="100"/>
<item
android:drawable="@drawable/f"
android:duration="100"/>
二、补间动画:
补间动画又分为四大类:
移动补间动画,
缩放补间动画,
旋转补间动画,
透明补间动画。
使用步骤:
1,在res中创建anim文件夹
2,在此文件夹下创建(如:tween_alpha_useing)
详细介绍:
<!--
android:oneshot 帧动画的自动执行,为true时,动画只执行一次停在最后一帧上;为false时循环执行
-->
<!-- shareInterpolator 所有的Animation共用一个Interpolator -->
<!-- android:repeatCount 重复次数 0,1.。。infinite-->
<!-- 补间动画 -->
<!--
透明度控制动画效果 alpha
浮点型值:
fromAlpha 属性为动画起始时透明度
toAlpha 属性为动画结束时透明度(0.0表示完全透明,1.0表示完全不透明)
以上值取0.10-1.0之间的float数据类型的数字
长整型值:
duration 属性为动画持续时间(时间以毫秒为单位)
android:fillBefore 指动画结束时画面停留在此动画的第一帧; 默认值为true
android:fillAfter 指动画结束是画面停留在此动画的最后一帧。默认值为false
android:fillEnabled
1,FillEnable = false 时,FillBefore 和FillAfter的值将被忽略,此时FillEnable=Flase时和FillBefore = true且FillAfter=true,
且FillEnabled=true等价,也就是开始结束都会被fill坑爹。。。,一般写成false
2,FillEnable = true时,FillBefore = true,FillAfter = false;只在第一帧fill
3,FillEnable = true时,FillBefore = false,FillAfter=true;只在最后一帧fill
4,FillEnable = true时,FillBefore = false,FillAfter=false
startOffset 设置启动时间
-->
<alpha
android:duration="3000"
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:fillBefore="true"
android:fillAfter="true"
android:fillEnabled="true"/>
<!--
尺寸伸缩动画效果 scale
interpolator 指定一个动画的插入器
accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
fromXScale 属性为动画起始时 X坐标上的伸缩尺寸
toXScale 属性为动画结束时 X坐标上的伸缩尺寸
fromYScale 属性为动画起始时Y坐标上的伸缩尺寸
toYScale 属性为动画结束时Y坐标上的伸缩尺寸
浮点值:0.0表示收缩到没有 ; 1.0表示正常无伸缩 ; 值小于1.0表示收缩 ; 值大于1.0表示放大
pivotX 属性为动画相对于物件的X坐标的开始位置
pivotY 属性为动画相对于物件的Y坐标的开始位置
值:以上两个属性值 从0%-100%中取值 ; 50%为物件的X或Y方向坐标上的中点位置
duration 属性为动画持续时间(同上)
fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用
-->
<scale
android:duration="3000"
android:fillAfter="true"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:interpolator="@android:anim/decelerate_interpolator"
android:pivotX="20%"
android:pivotY="30%"
android:toXScale="0.8"
android:toYScale="0.6" />
<!--
位置转移动画效果 translate
fromXDelta 属性为动画起始时 X坐标上的位置
toXDelta 属性为动画结束时 X坐标上的位置
fromYDelta 属性为动画起始时 Y坐标上的位置
toYDelta 属性为动画结束时 Y坐标上的位置
注意:
没有指定fromXType toXType fromYType toYType 时候,
默认是以自己为相对参照物
duration 属性为动画持续时间(时间以毫秒为单位)
-->
<translate
android:fromXScale="0.0"
android:fromYScale="0.0"
android:toXScale="0.8"
android:toYScale="0.6"
android:duration="3000"/>
<!--
旋转动画效果 rotate
interpolator 指定一个动画的插入器
有三种动画插入器:
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 属性为动画持续时间(时间以毫秒为单位)
-->
<rotate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0.0"
android:toDegrees="120"
android:pivotX="20%"
android:pivotY="30%"
android:duration="3000"
/>