1.Android中动画分类
Android中的动画分为3大类:帧动画,补间动画和属性动画
2.帧动画实现方式
帧动画由动画图形AnimationDrawable生成
3.AnimationDrawable常用方法
- addFrame:添加一幅图片帧,并指定该帧的持续时间(单位毫秒)。
- setOneShot:设置是否只播放一次。为true表示只播放一次,为false表示循环播放。
- start:开始播放。注意,设置宿主视图后才能进行播放。
- stop:停止播放。
- isRunning:判断是否正在播放。
4.帧动画显示方案
有了动画图形,还得有一个宿主视图显示该图形,一般使用图形视图ImageView承载AnimationDrawable,即调用ImageView对象的setImageDrawable方法将动画图形加载到图像视图中。
5.代码中实现帧动画
private void showFrameAnimByCode(){
ad_frame = new AnimationDrawable();
ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p1),50);
ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p2),50);
ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p3),50);
ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p4),50);
ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p5),50);
ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p6),50);
ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p7),50);
ad_frame.addFrame(getResources().getDrawable(R.mipmap.flow_p8),50);
ad_frame.setOneShot(false);
iv_pic.setImageDrawable(ad_frame);
ad_frame.start();
}
6.资源文件中实现帧动画
在drawable下创建资源文件frame_anim.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="@mipmap/flow_p1"
android:duration="50" />
<item
android:drawable="@mipmap/flow_p2"
android:duration="50" />
<item
android:drawable="@mipmap/flow_p3"
android:duration="50" />
<item
android:drawable="@mipmap/flow_p4"
android:duration="50" />
<item
android:drawable="@mipmap/flow_p5"
android:duration="50" />
<item
android:drawable="@mipmap/flow_p6"
android:duration="50" />
<item
android:drawable="@mipmap/flow_p7"
android:duration="50" />
<item
android:drawable="@mipmap/flow_p8"
android:duration="50" />
</animation-list>
在代码中
private void showFrameAnimByCode(){
iv_pic.setImageResource(R.drawable.frame_anim);
ad_frame = (AnimationDrawable) iv_pic.getDrawable();
ad_frame.start();
}
|