随笔

Android动画相关

2016-07-03  本文已影响13人  王元

Animation 动画

AlphaAnimation 渐变透明度

RotateAnimation 画面旋转

ScaleAnimation 渐变尺寸缩放

TranslateAnimation 位置移动

AnimationSet 动画集

1,帧动画(Frame Animation,也称Drawable Animation)

animation_list.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
 android:oneshot="false">
 <item android:drawable="@drawable/bg1" android:duration="150"></item>  
 <item android:drawable="@drawable/bg2" android:duration="150"></item>  
 <item android:drawable="@drawable/bg3" android:duration="150"></item>  
 <item android:drawable="@drawable/bg4" android:duration="150"></item>  
 <item android:drawable="@drawable/bg5" android:duration="150"></item>  
 <item android:drawable="@drawable/bg6" android:duration="150"></item>  
 <item android:drawable="@drawable/bg7" android:duration="150"></item>  
</animation-list>

代码中给ImageView设置动画,然后启动动画

mIvLoadinAnim.setImageResource(R.drawable.animation_white_list);
AnimationDrawable animDrawable = (AnimationDrawable) mIvLoadinAnim.getDrawable();
animDrawable.start();

停止动画

animDrawable.stop();

2,补间动画(Tween Animation)

该类animations提供了旋转(Rotate),移动(translate),缩放(scale)和渐变(alpha)效果

3,属性动画(Property Animation)

属性动画,一般情况下都是写在res/anim包下。为了在描述方便所有的动画都名称都是loading_anim.xml
缩放动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/decelerate_interpolator"
android:fillAfter="false"
android:fromXScale="1"
android:fromYScale="1"
android:toXScale="1.8"
android:toYScale="1.8"
android:pivotX="50.0%"
android:pivotY="50.0%"
android:duration="120"
android:repeatCount="1"
android:repeatMode="reverse"/>
</set>

移动动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate
android:duration="500"
android:toYDelta="100%p" />

</set>

渐变动画

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="400"
android:fromAlpha="0.0"
android:toAlpha="1.0" />

旋转动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <rotate
   android:fromDegrees="0.0"
   android:toDegrees="360.0"
   android:pivotX="50%"
   android:pivotY="50%"
   android:duration="1000"
   android:repeatMode="restart"
   android:repeatCount="infinite"/>
</set>

代码中调用的方法(启动方法)

mLoadingAnimation = AnimationUtils.loadAnimation(context, R.anim.loading_anim);
mLoadingAnimation.setInterpolator(new LinearInterpolator());// 不停顿(设置播放的速度,匀速,加速,减速)
mLoadingAnimation.setFillAfter(true);
mIvLoadinAnim.startAnimation(mLoadingAnimation);

停止动画方法:

animDrawable.cancle();

讲的还不够详细,后期会慢慢补充(有好的意见或者建议,欢迎留言)

上一篇下一篇

猜你喜欢

热点阅读