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

android动画之Interpolator和AnimationSet

2014-07-10 15:43 363 查看
如果在android中开发复合动画需要使用类AnimationSet 类 利用它的add 方法就可一加入动画 或者使用布局文件 set 加入多个动画就行 不过他们是在同一时间内开始动画的

xml代码
<?xml version="1.0"encoding="utf-8"?>
<setxmlns:android="http: android=""res=""apk=""schemas.android.com="">
<translate
android:toXDelta="100%p"
android:fromXDelta="0"
android:duration="1000">
</alpha>
</translate>
</setxmlns:android="http:>


//    通过AnimationSet应用多个动画
//    AnimationSet提供了一个把多个动画组合成一个组合的机制,并可设置组中动画的时序关系,如同时播放,顺序播放等。
//    以下例子同时应用5个动画:
//          播放anim1;
//          同时播放anim2,anim3,anim4;
//          播放anim5。
AnimatorSet bouncer = new AnimatorSet();
bouncer.play(anim1).before(anim2);
bouncer.play(anim2).with(anim3);
bouncer.play(anim2).with(anim4)
bouncer.play(anim5).after(amin2);
animatorSet.start();


AnimationSet可以加入Animation,加入之后设置AnimationSet对加入的所有Animation都有效。

AnimationSet anim=new AnimationSet(true);
AlphaAnimation a=new AlphaAnimation(1,0);
RotateAnimation ra=new RotateAnimation(0, 720, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0.5f);
anim.addAnimation(a);
anim.addAnimation(ra);
anim.setDuration(3000);
anim.setStartOffset(1000);
iv.startAnimation(anim);

AnimationSet anim=new AnimationSet(true);
AlphaAnimation a=new AlphaAnimation(1,0);
RotateAnimation ra=new RotateAnimation(0, 720, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0.5f);
anim.addAnimation(a);
anim.addAnimation(ra);
anim.setDuration(3000);
anim.setStartOffset(1000);
iv.startAnimation(anim);


可以再xml文件中定义多个Animation,这样多个Animation可以一起运行

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true"
>
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:startOffset="500"
android:duration="3000"
/>
<rotate
android:fromDegrees="0"
android:toDegrees="400"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"
/>

</set>


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true"
>
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:startOffset="500"
android:duration="3000"
/>
<rotate
android:fromDegrees="0"
android:toDegrees="400"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"
/>

</set>


Interpolator可以定义动画播放的速度



在xml文件中定义Interpolator

android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true"


  

这样所有的Animation共用一个Interpolator。

在代码中用代码设置如下

anim.setInterpolator(new AccelerateInterpolator());

在new一个AnimationSet中传入true则所有的Animation共用Interpolator
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: