首先感谢启舰大神,本篇主要是对学习Android自定义控件三部曲过程中知识的回顾。
-
从Animation类继承的属性
android:duration 动画持续时间,以毫秒为单位
android:fillAfter 如果设置为true,控件动画结束时,将保持动画最后时的状态
android:fillBefore 如果设置为true,控件动画结束时,还原到开始动画前的状态
android:fillEnabled 与android:fillBefore 效果相同,都是在动画结束时,将控件还原到初始化状态
android:repeatCount 重复次数
android:repeatMode 重复类型,有reverse和restart两个值,reverse表示倒序回放,restart表示重放
android:interpolator 设定插值器,其实就是指定的动作效果,比如弹跳效果等
注意:必须与repeatCount一起使用才能看到效果。因为这里的意义是重复的类型,即回放时的动作。
-
alpha、scale、translate、rotate、set的xml属性及用法
alpha | 渐变透明度动画效果 |
scale | 渐变尺寸伸缩动画效果 |
translate | 画面转换位置移动动画效果 |
rotate | 画面转移旋转动画效果 |
-
alpha属性
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1.0" //动画开始的透明度,从0.0到1.0 、0.0表示全透明,1.0表示完全不透明
android:toAlpha="0.1" //动画结束时的透明度,也是从0.0、1.0 ,与fromAlpha属性相反
android:duration="3000" //动画执行的时间
android:fillBefore="true"> //如果设置为true,控件动画结束时,还原到开始动画前的状态
</alpha>
- scale属性
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="0.0" // 起始的X方向上相对自身的缩放比例,浮点值
android:toXScale="1.4" // 结尾的X方向上相对自身的缩放比例,浮点值
android:fromYScale="0.0" // 起始的Y方向上相对自身的缩放比例,浮点值
android:toYScale="1.4" // 结尾的Y方向上相对自身的缩放比例,浮点值
android:pivotX="50" // 缩放起点X轴坐标,可以是数值、百分数、百分数p 三种样式
android:pivotY="50" // 缩放起点Y轴坐标,取值及意义跟android:pivotX一样
android:duration="700">
</scale>
注意:pivotX和pivotY的属性中三种数值的意义各有不同,比如 50、50%、 50%p,当为数值时,表示在当前View的左上角,即原点处加上50px,做为起始缩放点; 如果是50%,表示在当前控件的左上角加上自己宽度的50%做为起始点;如果是50%p, 那么就是表示在当前的左上角加上父控件宽度的50%做为起始点x轴坐标。
-
translate属性
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0" // 起始点X轴坐标,可以是数值、百分数、百分数p 三种样式
android:toXDelta="-80" // 起始点Y轴从标,可以是数值、百分数、百分数p 三种样式
android:fromYDelta="0" // 结束点X轴坐标
android:toYDelta="-80" // 结束点Y轴坐标
android:duration="2000"
android:fillBefore="true">
</translate>
-
rotate属性
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0" // 开始旋转的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数
android:toDegrees="-650" // 结束时旋转到的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数
android:pivotY="50%" // 缩放起点X轴坐标,可以是数值、百分数、百分数p 三种样式
android:pivotX="50%" // 缩放起点Y轴坐标,可以是数值、百分数、百分数p 三种样式
android:duration="3000"
android:fillAfter="true">
</rotate>
-
set属性
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3000"
android:fillAfter="true">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0" />
<scale
android:fromXScale="0.0"
android:toXScale="1.4"
android:fromYScale="0.0"
android:toYScale="1.4"
android:pivotX="50%"
android:pivotY="50%" />
<rotate
android:fromDegrees="0"
android:toDegrees="720"
android:pivotX="50%"
android:pivotY="50%" />
</set>