一.Android的animation由四种类型组成:alpha、scale、translate、rotate
alpha 渐变透明度动画效果
scale 渐变尺寸伸缩动画效果
translate 画面转换位置移动动画效果
rotate 画面转移旋转动画效果
二。属性:
动画基类Animation支持的XML属性
duration:一次动画的执行耗时;
startOffset:动画从startTime到真正执行的等待事件,也就是开始偏移时间量;
fillEnabled:表示动画开始前和结束后是否还继续应用动画的转化效果,默认false;
fillBefore:动画开始执行前是否应用动画的转化效果,默认true;但受fillEnabled影响:fillEnabled=false,此方法值的false无效而true有效;fillEnabled=true,此方法的true/false都有效
fillAfter:动画结束执行后是否应用动画的转化效果,默认false;也受fillEnabled影响 fillEnabled=false,此方法的false无效而true有效,fillEnabled=true,此方法true/false 都有效;
repeatCount:动画重复执行次数
repeatMode:动画重复执行时的模式,可以指定重复执行是从头执行或者逆序执行到头
zAdjustment:动画执行过程中待执行动画的View的展示层次
background:动画执行过程中的背景
detachWallpaper:如果动画是Window动画,而Window设置了背景,则此值true表示Window展示动画,而背景保持不动,不执行动画;false表示背景和Window一起执行动画;
interpolator:动画的插值器
三。Alpha Xml属性
android:fromAlpha 动画开始的透明度,从0.0 --1.0 ,0.0表示全透明,1.0表示完全不透明
android:toAlpha 动画结束时的透明度,也是从0.0 --1.0 ,0.0表示全透明,1.0表示完全不透明
四。Scale Xml属性
android:fromXScale 起始的X方向上相对自身的缩放比例,浮点值,比如1.0代表自身无变化,0.5代表起始时缩小一倍,2.0代表放大一倍;
android:toXScale 结尾的X方向上相对自身的缩放比例,浮点值;
android:fromYScale 起始的Y方向上相对自身的缩放比例,浮点值,
android:toYScale 结尾的Y方向上相对自身的缩放比例,浮点值;
android:pivotX 缩放起点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p,当为数值时,表示在当前View的左上角, 即原点处加上50px,做为起始缩放点;如果是50%,表示在当前控件的左上角加上自己宽度的50%做为起始点;如果是50%p,那么就是表示在当前的左上角加上 父控件宽度的50%做为起始点x轴坐标。
android:pivotY 缩放起点Y轴坐标,取值及意义跟android:pivotX一样。
五。Rate Xml属性
android:fromDegrees 开始旋转的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数
android:toDegrees 结束时旋转到的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数
android:pivotX 缩放起点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p,具体意义已在scale标签中讲述,
android:pivotY 缩放起点Y轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p
六。Transalte Xml属性:
android:fromXDelta 起始点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p,具体意义已在scale标签中讲述,
android:fromYDelta 起始点Y轴从标,可以是数值、百分数、百分数p 三种样式;
android:toXDelta 结束点X轴坐标
android:toYDelta 结束点Y轴坐标
七。应用:
在res目录下建立新文件夹取名为anim,在此文件夹中分别建立 对应的xml文件,选择对应的类型;例如欲实现透明度变换效果,则在anim下建立alpha_anim文件
选择alpha,在xml文件中实现对应的属性,里面只需要<alpha />即可,不需要<alpha ></alpha>
例如:
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha = "1.0"
android:toAlpha = "0.1"
android:duration="3000"
android:fillBefore="true"/>
重点注意set文件,这个文件相当于一个集合,里面你可以添加多种动画类型,为方便起见,可以把共有的继承Animation属性放在set标签内,其余单个编写各自的属性
例如:<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1500"
android:fillBefore="true"
android:repeatCount="2"
android:repeatMode="restart"
>
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
/>
<scale
android:fromXScale="0.0"
android:toXScale="2.0"
android:fromYScale="0.0"
android:toYScale="2.0"
android:pivotX="50%"
android:pivotY="50%"
/>
</set>
将动画效果绑定控件;
利用Animation animation = AnimationUtils.loadAnimation(this, R.anim.scale_anim);将对应的动画类型得到
接下来只需要利用 类似的控件的实例化对象开启动画的形式开启动画 textview.startAnimation(animation)