android动画之Interpolator和AnimationSet
2014-07-10 15:43
363 查看
如果在android中开发复合动画需要使用类AnimationSet 类 利用它的add 方法就可一加入动画 或者使用布局文件 set 加入多个动画就行 不过他们是在同一时间内开始动画的
AnimationSet可以加入Animation,加入之后设置AnimationSet对加入的所有Animation都有效。
可以再xml文件中定义多个Animation,这样多个Animation可以一起运行
Interpolator可以定义动画播放的速度
![](http://images.cnitblog.com/i/619189/201407/101538542702801.png)
在xml文件中定义Interpolator
这样所有的Animation共用一个Interpolator。
在代码中用代码设置如下
anim.setInterpolator(new AccelerateInterpolator());
在new一个AnimationSet中传入true则所有的Animation共用Interpolator
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可以定义动画播放的速度
![](http://images.cnitblog.com/i/619189/201407/101538542702801.png)
在xml文件中定义Interpolator
android:interpolator="@android:anim/accelerate_interpolator" android:shareInterpolator="true"
这样所有的Animation共用一个Interpolator。
在代码中用代码设置如下
anim.setInterpolator(new AccelerateInterpolator());
在new一个AnimationSet中传入true则所有的Animation共用Interpolator
相关文章推荐
- Android动画之Interpolator和AnimationSet(三)
- Android动画之Interpolator和AnimationSet(三)
- Android动画之Interpolator和AnimationSet(三)
- android动画之Interpolator和AnimationSet
- Android动画之Interpolator和AnimationSet
- Android动画之Interpolator和AnimationSet(三)
- Android动画之Interpolator和AnimationSet(三)
- Android动画之Interpolator和AnimationSet
- Android动画之Interpolator和AnimationSet
- Android动画之Interpolator和AnimationSet
- Android动画之Interpolator和AnimationSet
- Android动画之Interpolator和AnimationSet(三)
- Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
- 详解Android动画之Interpolator插入器
- Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
- 详解Android动画之Interpolator插入器
- 【Android】详解Android动画之Interpolator插入器
- 详解Android动画之Interpolator插入器
- android 动画AnimationSet 和 AnimatorSet
- Android控件的动画效果的实现及其AnimationListener和Interpolator的使用方法