视图动画

2020-03-19  本文已影响0人  王家二公主

视图动画的种类:

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);动画重复时


上一篇 下一篇

猜你喜欢

热点阅读