安卓动画学习--帧动画

安卓中的帧动画是按顺序预先设置好的一组连贯的图片组合而成的动画,类似于电影画面。系统提供了AnimationDrawable来使用帧动画。帧动画的使用步骤比较简单,通常有两种方式,1是通过xml预先定义好,2是通过动态代码加载相关的动画资源。


第一种方式是通过xml定义帧动画:
1:在res目录下的Drawable资源文件下通过xml定义一个drawable文件.里面是一系列的图片资源。类似于下面的frame_anim_3.xml:



    
    
    
    
    
    
    
    
    
    
    
    
    
    

注意:其中父标签中的oneshot属性表示的是重复播放还是只播放一次,当其值为true时,动画只播放一次;当其值为false,动画将无限循环播放;
子标签中drawable=""表示图片的资源,duration=""表示该帧画面执行的时长。
2:在代码中设置相关资源文件,并启动动画。

animtion3= (ImageView) findViewById(R.id.animtion3);
animtion3.setBackgroundResource(R.drawable.frame_anim_3);//设置drawable资源
AnimationDrawable drawable3= (AnimationDrawable) animtion3.getBackground();
drawable3.start();//开始播放

第二种方式是动态代码创建。如下:

animtion3= (ImageView) findViewById(R.id.animtion3);
drawable3=new AnimationDrawable();
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_01),100);
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_02),100);
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_03),100);
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_04),100); 
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_05),100); 
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_06),100);  
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_07),100);   
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_08),100);
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_09),100);
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_10),100);  
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_11),100);  
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_12),100);
drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_13),100);       drawable3.addFrame(getResources().getDrawable(R.mipmap.page_loading_14),100);
animtion3.setImageDrawable(drawable3);
drawable3.start();//开始播放

AnimationDrawable常用API:

void start() - 开始播放动画

void stop() - 停止播放动画

addFrame(Drawable frame, int duration) - 添加一帧,并设置该帧显示的持续时间

void setOneShoe(boolean flag) - false为循环播放,true为仅播放一次

boolean isRunning() - 是否正在播放
安卓动画学习--帧动画_第1张图片
frame.gif

下面是该例子的frame_anim_3.xml中的图片;


安卓动画学习--帧动画_第2张图片
page_loading_01.png
安卓动画学习--帧动画_第3张图片
page_loading_02.png
安卓动画学习--帧动画_第4张图片
page_loading_03.png

安卓动画学习--帧动画_第5张图片
page_loading_04.png
安卓动画学习--帧动画_第6张图片
page_loading_05.png
安卓动画学习--帧动画_第7张图片
page_loading_06.png
安卓动画学习--帧动画_第8张图片
page_loading_07.png
安卓动画学习--帧动画_第9张图片
page_loading_08.png
安卓动画学习--帧动画_第10张图片
page_loading_09.png
安卓动画学习--帧动画_第11张图片
page_loading_10.png
安卓动画学习--帧动画_第12张图片
page_loading_11.png
安卓动画学习--帧动画_第13张图片
page_loading_12.png
安卓动画学习--帧动画_第14张图片
page_loading_13.png
安卓动画学习--帧动画_第15张图片
page_loading_14.png

你可能感兴趣的:(安卓动画学习--帧动画)