您的位置:首页 > 移动开发 > Android开发

Android动画中的一些知识点的总结

2016-08-25 16:14 513 查看

Android动画知识点

Android animation中有很多知识点,各种属性需要我们记住,但是由于本人记性不好,每次需要时都要去搜,觉得很麻烦,因此把一些常用的各种属性写到博客里,这样下次直接就可以找到了。

一、AnimationSet

AnimationSet是Animation的子类,它是一系列动画的集合,可以包含多个动画,显示多种动画效果。

常见的使用方法:

1、创建一个AnimationSet对象(Animation子类);

2、增加需要创建相应的Animation对象;

3、更加项目的需求,为Animation对象设置相应的数据;

4、将Animatin对象添加到AnimationSet对象当中;

5、使用控件对象开始执行AnimationSet。

二、Tween Animation的说明

1、setDuration(long durationMills)

  设置动画持续时间(单位:毫秒)

2、setFillAfter(Boolean fillAfter)

  如果fillAfter的值为true,则动画执行后,控件将停留在执行结束的状态

3、setFillBefore(Boolean fillBefore)

  如果fillBefore的值为true,则动画执行后,控件将回到动画执行之前的状态

4、setStartOffSet(long startOffSet)

  设置动画执行之前的等待时间

5、setRepeatCount(int repeatCount)

  设置动画重复执行的次数

6、 setRepeatCount(int repeatCount)

  设置动画重复的类型

7、 setInterpolator(Interpolator)

  设定插值器(指定的动画效果,譬如回弹等)

Animation属性详解

xml属性java方法解释
android:fromAlphaAlphaAnimation(float fromAlpha, …)动画开始的透明度(0.0到1.0,0.0是全透明
android:toAlphaAlphaAnimation(…,float toAlpha)动画结束的透明度,同上
Rotate属性详解

xml属性java方法解释
android:fromDegreesRotateAnimation(float fromDegrees, …)旋转开始角度,正代表顺时针度数,负代表逆时针度数
android:toDegreesRotateAnimation(…, float toDegrees, …)旋转结束角度,正代表顺时针度数,负代表逆时针度数
android:pivotXRotateAnimation(…, float pivotX, …)缩放起点X坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点)
android:pivotYRotateAnimation(…, float pivotY)缩放起点Y坐标,同上规律
Scale属性详解

xml属性java方法解释
android:fromXScaleScaleAnimation(float fromX,…)初始X轴缩放比例,1.0表示无变化
android:toXScaleScaleAnimation(…, float toX,…)结束X轴缩放比例
android:fromYScaleScaleAnimation(…, float fromY, …)初始Y轴缩放比例
android:toYScaleScaleAnimation(…, float toY, …)结束Y轴缩放比例
android:pivotXScaleAnimation(…, float pivotX, …)缩放起点X轴坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点)
android:pivotYScaleAnimation(…, float pivotY)缩放起点Y轴坐标,同上规律
Translate属性详解

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

注意事项

补间动画执行之后并未改变View的真实布局属性值。切记这一点,譬如我们在Activity中有一个Button在屏幕上方,我们设置了平移动画移动到屏幕下方然后保持动画最后执行状态呆在屏幕下方,这时如果点击屏幕下方动画执行之后的Button是没有任何反应的,而点击原来屏幕上方没有Button的地方却响应的是点击Button的事件。

三、Interpolator的具体使用方法

Interpolator定义了动画变化的速率,在Animations框架当中定义了一下几种Interpolator

★ AccelerateDecelerateInterpolator:在动画开始与结束的地方速率改变比较慢,在中间的时候速率快。

★ AccelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始加速

★ CycleInterpolator:动画循环播放特定的次数,速率改变沿着正弦曲线

★ DecelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始减速

★ LinearInterpolator:动画以均匀的速率改变

分为以下几种情况:

1、在set标签中

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"/>


2、如果在一个set标签中包含多个动画效果,如果想让这些动画效果共享一个Interpolator。

android:shareInterpolator="true"


3、如果不想共享一个interpolator,则设置

android:shareInterpolator=”true”,并且需要在每一个动画效果处添加interpolator。

<alpha
android:interpolator="@android:anim/accelerate_decelerate_interpolator" />


4、如果是在代码上设置共享一个interpolator,则可以在AnimationSet设置interpolator。

AnimationSet animationSet = newAnimationSet(true);
animationSet.setInterpolator(new AccelerateInterpolator());


5、如果不设置共享一个interpolator则可以在每一个Animation对象上面设置interpolator。

AnimationSet animationSet = newAnimationSet(false);
alphaAnimation.setInterpolator(new Acc
4000
elerateInterpolator());
rotateAnimation.setInterpolator(new DecelerateInterpolator());


四、 AnimationListener

1、AnimationListener是一个监听器,该监听器在动画执行的各个阶段会得到通知,从而调用相应的方法;

2、AnimationListener主要包括如下三个方法:

★ onAnimationEnd(Animation animation) - 当动画结束时调用

★ onAnimationRepeat(Animation animation) - 当动画重复时调用

★ onAniamtionStart(Animation animation) - 当动画启动时调用

五、Drawable动画说明

我们依旧可以使用xml或者java方式实现帧动画。但是依旧推荐使用xml,具体如下:

< animation-list>必须是根节点,包含一个或者多个< item>元素,属性有:android:oneshot true代表只执行一次,false循环执行。

< item> 类似一帧的动画资源。

< item> animation-list的子项,包含属性如下:

android:drawable 一个frame的Drawable资源。

android:duration 一个frame显示多长时间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 动画