视图动画的种类:
alpha:渐变透明动画效果
scale 渐变尺寸伸缩
translate:画面变换位置移动
rorate:画面转移旋转动画
set:定义动画集
加载使用动画:Animation animation = AnimationUtils.loadAnimation(MyActivity.this,R.anim.XX)
scale标签
用于缩放动画,可以实现动态调整空间尺寸的效果
android:fromXScale:动画的起始,空间在X轴方向上相对自身的缩放比列 1.0代表自身无变化 0.5代表缩小一倍
android:toXScale:动画的结束,空间在X轴方向上相对自身的缩放比列
android:fromYScale:动画的起始,空间在Y轴方向上相对自身的缩放比列 1.0代表自身无变化 0.5代表缩小一倍
android:toYScale:动画的结束,空间在Y轴方向上相对自身的缩放比列
android:pivotX:缩放起始点X轴坐标,可以是数值,百分数,百分数p三种样式,如50,50%,50%p 数值代表当前视图的左上角,即原始点出加上50px,如果是50%,则表示在当前控件的左上角加上自己宽度的50%,如果是50%p,则表示在当前控件的左上角加上父控件宽度的50%
android:pivotY:缩放起始点Y轴坐标
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="1.0"
android:fromYScale="2"
android:toXScale="0.4"
android:toYScale="0.6"
android:duration = "700">
</scale>
Animation
android:duration 动画完成时间
android:fillAfter: true控件动画结束时,保存动画结束状态
android:fillBefore: true控件动画结束时,还原动画初始状态
android:fillEnable ,与android:fillBefore效果相同,都是在控件动画结束时,将还原到初始状态
android:repeatCount 指定动画的重复次数,当为 infinite,表示无限循环
android:repeatMode 用于设定重复类型,有reverse和restart两个值,reverse表示倒序回放,restart表示重放,并且必须与repeatCout配合使用
android:interpolator 用于设定插值器,指定动画效果,比如弹跳效果等
Alpha标签
渐变透明动画效果
android:fromAlpha 动画开始的透明度,值范围0.0到1.0 0.0是全透明 1.0是完全不透明
android:toAlpha 动画开始的透明度,值范围0.0到1.0 0.0是全透明 1.0是完全不透明
rotate标签
画面转移旋转动画效果
android:fromDegrees 动画开始旋转的角度位置,正值代表顺时针,负值代表逆时针
android:toDegrees 动画结束旋转的角度位置,正值代表顺时针,负值代表逆时针
android:pivotX旋转中心点X轴坐标,默认是坐标原点,可以是数值,百分数,百分数p三种样式,如50,50%,50%p 数值代表当前视图的左上角,即原始点出加上50px,如果是50%,则表示在当前控件的左上角加上自己宽度的50%,如果是50%p,则表示在当前控件的左上角加上父控件宽度的50%
android:pivotY:旋转中心点Y轴坐标
translate标签
画面变换位置
android:fromXDelta 起点X轴坐标,可以是数值,百分数,百分数p三种样式,如50,50%,50%p 数值代表当前视图的左上角,即原始点出加上50px,如果是50%,则表示在当前控件的左上角加上自己宽度的50%,如果是50%p,则表示在当前控件的左上角加上父控件宽度的50%
android:fromYDelta:起点Y轴坐标
android:toXDelta 终点X轴坐标
android:toYDelta终点Y轴坐标
set标签
容器类标签,定义动画集
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="5000"
android:fillAfter="true">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"/>
<scale
android:fromYScale="0.0"
android:fromXScale="0.0"
android:toYScale="1.4"
android:toXScale="1.4"
android:pivotY="50%"
android:pivotX="50%"/>
<rotate
android:fromDegrees="0"
android:toDegrees="720"
android:pivotX="50%"
android:pivotY="50%"/>
</set>
视图代码的动画实现
1、ScaleAnimation
构造方法
public ScaleAnimation(Context context, AttributeSet attrs)
public ScaleAnimation(float fromX, float toX, float fromY, float toY)
public ScaleAnimation(float fromX, float toX, float fromY, float toY, float pivotX, float pivotY)
public ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
最后一个构造函数pivotXType参数取值有三个Animation.ABSOLUTE,具体数值,如50;Animation.RELATIVE_TO_PARENT ,相对于父容器,取值如50%p,Animation.RELATIVE_TO_SELF相对于自身,取值为50%
2、AlphaAnimation
3、RotateAnimation
4、TranslateAnimation
5、AnimationSet
public AnimationSet(Context context, AttributeSet attrs)
public AnimationSet(boolean shareInterpolator)
shareInterpolator为true,用于在AnimationSet中定义一个插值器(interpolater),下面所以的动画都用这个插值器;为false时,下面的动画定义各自的插值器
增加动画的方法:
public void addAnimation(Animation a)
6、Animation
取消动画
public void cancel()
将动画重置到动画开始前状态
public void reset()
动画监听
public void setAnimationListener(Animation.AnimationListener listener)
void onAnimationStart(Animation var1);动画开始时
void onAnimationEnd(Animation var1); 动画结束时
void onAnimationRepeat(Animation var1);动画重复时
网友评论