视图动画

视图动画的种类:

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


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容