android视图动画

一 概述

本文主要讲解视图动画相关的知识,除了四种基本动画以外,还有set标签的使用。视图动画都可以通过两种方式来使用,一是通过xml,二是只使用代码。视图动画主要分为如下几种动画:

类别 描述
alpha 透明度动画
scale 缩放动画
translate 平移动画
rotate 旋转动画

以上四种动画,有部分通用的属性和方法,如下表:

xml属性 对应方法 描述
android:detachWallpaper setDetachWallpaper(boolean) 是否在壁纸上运行
android:duration setDuration(long) 动画持续时间,毫秒为单位
android:fillAfter setFillAfter(boolean) 动画结束时是否保持在动画最后的状态
android:fillBefore setFillBefore(boolean) 动画结束时是否保持在动画开始前的状态
android:fillEnabled setFillEnabled(boolean) 与android:fillBefore效果相同
android:interpolator setInterpolator(Interpolator) 设定插值器(后面有讲解)
android:repeatCount setRepeatCount(int) 重复次数
android:repeatMode setRepeatMode(int) 重复类型,reverse表示倒序回放,restart表示从头播放
android:startOffset setStartOffset(long) 调用start函数之后的延迟时间,单位为毫秒
android:zAdjustment setZAdjustment(int) 动画的内容运行时在Z轴上的位置,上层或者底层(top/bottom/normal),默认为normal

二 alpha动画

alpha动画,即是透明度动画,可以操作透明度,特有属性有

xml属性 描述
android:fromAlpha 动画开始的透明度
android:toAlpha 动画结束的透明度

在代码中,创建AlphaAnimation对象的时候,也可以在构造方法中指定上述的两个参数。AlphaAnimation(float fromAlpha, float toAlpha)

alpha动画相对比较简单。

二 scale动画

缩放动画,动画中可以缩放视图,改变视图的大小,特有的属性如下

xml属性 对应方法 描述
android:fromXScale ScaleAnimation(float fromX, …) 初始x轴缩放比例,1表示原始大小
android:toXScale ScaleAnimation(…, float toX, …) 结束X轴缩放比例
android:fromYScale ScaleAnimation(…, float fromY, …) 初始Y轴缩放比例
android:toYScale ScaleAnimation(…, float toY, …) 结束Y轴缩放比例
android:pivotY ScaleAnimation(…, float pivotY) 缩放起点Y轴坐标
android:pivotX ScaleAnimation(…, float pivotX, …) 缩放起点X轴坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点)

以上的ScaleAnimation(float fromX, …)代表构造方法时传递的参数。

三 translate

平移动画,动画中可以平移视图,改变视图的位置,特有的属性如下

xml属性 对应方法 描述
android:fromXDelta TranslateAnimation(float fromXDelta, …) 起始点X轴坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点)
android:fromYDelta TranslateAnimation(…, float fromYDelta, …) 起始点Y轴从标,同上规律
android:toXDelta TranslateAnimation(…, float toXDelta, …) 结束点X轴坐标,同上规律
android:toYDelta TranslateAnimation(…, float toYDelta) 结束点Y轴

值得说明的fromXDelta中的x坐标,默认是以控件自己作为参照物。如果是0,则是当前位置。

四 rotate

旋转动画,动画中可以旋转视图,特有的属性如下

xml属性 对应方法 描述
android:fromDegrees RotateAnimation(float fromDegrees, …) 旋转开始角度,正代表顺时针度数,负代表逆时针度数
android:toDegrees RotateAnimation(…, float toDegrees, …) 旋转结束角度,正代表顺时针度数,负代表逆时针度数
android:pivotX RotateAnimation(…, float pivotX, …) 起点X坐标
android:pivotY RotateAnimation(…, float pivotY) 起点Y坐标

以上四种基本动画比较简单,如果需要联合使用可以使用set标签,或者在代码中使用AnimationSet

你可能感兴趣的:(动画,android,视图,view,animation)