逐帧动画-补间动画
逐帧动画
xml文件配置方法
*oneshot 配置播放的次数 true : 无线循环 fale :只播放一次
- item 单个图片选项
- drawable 图片
- duration 播放时间
<animation-list
xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/img00" android:duration="100"></item>
<item android:drawable="@drawable/img01" android:duration="100"></item>
<item android:drawable="@drawable/img02" android:duration="100"></item>
<item android:drawable="@drawable/img03" android:duration="100"></item>
<item android:drawable="@drawable/img04" android:duration="100"></item>
<item android:drawable="@drawable/img05" android:duration="100"></item>
<item android:drawable="@drawable/img06" android:duration="100"></item>
<item android:drawable="@drawable/img07" android:duration="100"></item>
<item android:drawable="@drawable/img08" android:duration="100"></item>
<item android:drawable="@drawable/img09" android:duration="100"></item>
<item android:drawable="@drawable/img10" android:duration="100"></item>
<item android:drawable="@drawable/img11" android:duration="100"></item>
<item android:drawable="@drawable/img12" android:duration="100"></item>
<item android:drawable="@drawable/img13" android:duration="100"></item>
<item android:drawable="@drawable/img14" android:duration="100"></item>
<item android:drawable="@drawable/img15" android:duration="100"></item>
<item android:drawable="@drawable/img16" android:duration="100"></item>
<item android:drawable="@drawable/img17" android:duration="100"></item>
<item android:drawable="@drawable/img18" android:duration="100"></item>
<item android:drawable="@drawable/img19" android:duration="100"></item>
<item android:drawable="@drawable/img20" android:duration="100"></item>
<item android:drawable="@drawable/img21" android:duration="100"></item>
<item android:drawable="@drawable/img22" android:duration="100"></item>
<item android:drawable="@drawable/img23" android:duration="100"></item>
<item android:drawable="@drawable/img24" android:duration="100"></item>
</animation-list>
代码中调用
*第一种方法
AnimationDrawable drawable = (AnimationDrawable) getResources().getDrawable(R.drawable.shot);
ivView.setBackground(animationDrawable1);
drawble.start();
*第二种方法
ivView.setBackgroundResource(R.drawable.shot);
AnimationDrawable drawable = (AnimationDrawable) ivView.getBackground();
drawable.start();
不通过布局,直接在代码中实现动画
AnimationDrawable drawable = new AnimationDrawable();
drawable.addFrame(getResources().getDrawable(R.drawable.img00),100);
drawable.addFrame(getResources().getDrawable(R.drawable.img06),100);
drawable.addFrame(getResources().getDrawable(R.drawable.img07),100);
ivView.setBackground(drawable);
drawable.start();
补间动画
*平移动画
*缩放动画
*旋转动画
*透明度动画
以下的属性是上面四种动画都有的属性:
android:duration="3000" // 动画持续时间(ms),必须设置,动画才有效果
android:startOffset ="1000" // 动画延迟开始时间(ms)
android:fillBefore = “true” // 动画播放完后,视图是否会停留在动画开始的状态,默认为true
android:fillAfter = “false” // 动画播放完后,视图是否会停留在动画结束的状态,优先于fillBefore值,默认为false
android:fillEnabled= “true” // 是否应用fillBefore值,对fillAfter值无影响,默认为true
android:repeatMode= “restart” // 选择重复播放动画模式,restart代表正序重放,reverse代表倒序回放,默认为restart|
android:repeatCount = “0” // 重放次数(所以动画的播放次数=重放次数+1),为infinite时无限重复
android:interpolator = @[package:]anim/interpolator_resource // 插值器,即影响动画的播放速度
平移动画
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:toXDelta="500"
android:fromXDelta="0"
android:toYDelta="1000"
android:fromYDelta="0"
android:duration="3000">
</translate>
平移动画实现自身抖动效果
Animation shake = new TranslateAnimation(Animation.RELATIVETOSELF, 0f, Animation.RELATIVETOSELF, 0.01f, Animation.RELATIVETOSELF, 0f, Animation.RELATIVETOSELF, 0f);
shake.setDuration(1000);
shake.setInterpolator(new CycleInterpolator(10));
findViewById(R.id.btn_four).startAnimation(shake);
缩放动画
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="1"
android:toXScale="0.5"
android:fromYScale="1"
android:toYScale="0.5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000"
android:fillAfter ="true">
</scale>
旋转动画
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="361"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"
android:repeatCount="infinite">
</rotate>
透明度动画
<?xml version="1.0" encoding="utf-8"?>
<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1"
android:toAlpha="0.5"
android:duration="2000"
android:repeatCount="2"
android:repeatMode="reverse">
</alpha>
动画集合
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="1"
android:toAlpha="0.5"
android:duration="2000"
android:repeatCount="2"
android:repeatMode="reverse">
</alpha>
<rotate android:fromDegrees="0"
android:toDegrees="360"
android:pivotY="50%"
android:pivotX="50%"
android:duration="2000"
android:repeatCount="infinite">
</rotate>
<scale
android:fromXScale="1"
android:toXScale="0.5"
android:fromYScale="1"
android:toYScale="0.5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000"
android:repeatCount="infinite">
</scale>
<translate
android:toXDelta="1000"
android:fromXDelta="0"
android:toYDelta="0"
android:fromYDelta="0"
android:duration="5000">
</translate>
</set>
下一篇: css动画 绘制3d立体按钮