Android 动画总结一

分类:

     1. View Animation(补间动画)

     2. Drawable Animation (帧动画)

     3. Property Animation(属性动画)

一. 帧动画:

1. 创建/drawable文件下的animation-list资源:

       

       

       

2. 开启帧动画:

iv_anim.setImageResource(R.drawable.drawable_anim);

AnimationDrawable drawable = (AnimationDrawable) iv_anim.getDrawable();

drawable.start();

二. 补间动画:

1. 类型:

    translate(位移);scale(缩放);rotate(旋转);alpha()

    1> xml实现alpha

android:toAlpha="0.1"            // 透明色。

android:duration="1000"

// 这个插值器先加速后减速。

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

// 让xml的动画执行。

Animation animation = AnimationUtils.loadAnimation(getContext(),R.anim.alpha_anim);

// 让View 维持变化后的状态。

iv_anim.setFillAfter(animation);

iv_anim.startAnimation(animation);

2> 代码实现alpha:

Animation animation   = new AlphaAnimation(1,0);

// 设置动画的时间间隔

animation.setDuration(1000);

// 设置插值器。

animation.setInterpolator(new AccelerateDecelerateInterpolator());

// 让View 维持变化后的状态。

animation.setFillAfter(true);

iv_anim.startAnimation(animation);

3》xml实现translate动画

android:fromXDelta="0"        // 0 代表View的初始位置。

//  向右平移屏幕的一半。

android:toXDelta="-50%p"

android:duration="2000"

// 加速插值器。

android:interpolator="@android:anim/accelerate_interpolator"/>

4》代码实现位移动画

TranslateAnimation animation = newTranslateAnimation(

// 相对自己的View宽高的倍数。

Animation.RELATIVE_TO_SELF,0,          // fromX

Animation.RELATIVE_TO_SELF, 0,        // toX;

Animation.RELATIVE_TO_SELF,0,         // fromY

Animation.RELATIVE_TO_SELF,1);        // toY

5》xml实现Scale

android:toXScale="2"

android:fromYScale="1"

android:toYScale="2"

android:pivotX="50%"

android:pivotY="50%"

android:duration="5000"/>

6》代码实现缩放动画

//ScaleAnimation animation = new ScaleAnimation(1,(float) 0.5,1,(float) 0.5);

//pivotX(浮点型) pivotY(浮点型)表示控件围绕哪个点进行缩放,默认是围绕坐标原点。(0,0) 这两个值又有三种类型//

ScaleAnimation animation = new ScaleAnimation(1,(float) 0.5,1,(float) 0.5,(float) 800,(float) 800);

//ABSOLUTE:绝对值

//RELATIVE_TO_SELF:相对于自己

//RELATIVE_TO_PARENT:相对于父控件

ScaleAnimation animation = new ScaleAnimation(1,(float) 0.2,1,(float) 0.2, Animation.RELATIVE_TO_SELF,(float)0.5,Animation.RELATIVE_TO_SELF,1);

animation.setDuration(1000);

animation.setFillAfter(true);

iv_anim.startAnimation(animation);

7》xml实现旋转动画:

android:toDegrees="90"

android:pivotY="50%"

android:pivotX="0"

android:duration="2000"/>

8》代码实现旋转动画:

RotateAnimation animation =new RotateAnimation(0,90,0,0);

animation.setFillAfter(true);

animation.setDuration(2000);

iv_anim.startAnimation(animation);

你可能感兴趣的:(Android 动画总结一)