美文网首页
安卓动画学习--帧动画

安卓动画学习--帧动画

作者: utf8_1436 | 来源:发表于2017-06-02 00:15 被阅读0次

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


第一种方式是通过xml定义帧动画:
1:在res目录下的Drawable资源文件下通过xml定义一个drawable文件.里面是一系列的图片资源。类似于下面的frame_anim_3.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/page_loading_01" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_02" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_03" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_04" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_05" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_06" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_07" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_08" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_09" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_10" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_11" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_12" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_13" android:duration="100"/>
    <item android:drawable="@mipmap/page_loading_14" android:duration="100"/>
</animation-list>

<strong>注意:</strong>其中父标签中的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() - 是否正在播放
frame.gif

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


page_loading_01.png page_loading_02.png page_loading_03.png
page_loading_04.png page_loading_05.png page_loading_06.png page_loading_07.png page_loading_08.png page_loading_09.png page_loading_10.png page_loading_11.png page_loading_12.png page_loading_13.png page_loading_14.png

相关文章

  • 安卓中基本的动画总结

    安卓有三种基本的动画: 1.帧动画2.补间动画3.属性动画(安卓3.0以后加入) 帧动画 帧动画是在drawabl...

  • 安卓动画学习--帧动画

    安卓中的帧动画是按顺序预先设置好的一组连贯的图片组合而成的动画,类似于电影画面。系统提供了AnimationDra...

  • Android动画初探

    安卓动画目前共分为三种动画逐帧动画、补间动画和属性动画。 一、逐帧动画(frame-by-frame animat...

  • 动画之概述

    安卓动画主要由三类,分别是帧动画、补间动画、属性动画 帧动画:就是将一张张单独的图片连贯的进行播放 补间动画:主要...

  • 【安卓学习笔记】安卓动画的实现(1)——补间动画(Tween)

    安卓动画分类 安卓动画分为图中所示4大类。所谓帧动画,即准备很多图片,让图片按一定时间连续播放,从而达到模拟动画效...

  • Android源码学习-属性动画源码浅析

    介绍 安卓的动画有:View动画,帧动画和属性动画。其中View动画只是让View的影像发生变化,并不能真的改变V...

  • Android--属性动画基础

    安卓中动画分成两类 一种是传统动画,如:补间动画,帧动画,其本质是canvas的矩阵变换 另一种是属性动画,由谷歌...

  • FrameAnimDrawable

    本文介绍一个解决安卓帧动画OOM的组件。--- FrameAnimDrawable。 和AnimationDraw...

  • 安卓自定义差值器的属性动画

    安卓动画大致可以分为3大类,主要是针对View。 帧动画,类似于放电影,一帧一帧的进行播放,需要多张图片资源进行支...

  • iOS-动画知识梳理

    学习及实践笔记 记录iOS动画的学习及实践 目录 显示层(UIView)动画初级动画关键帧动画逐帧动画Gif动画的...

网友评论

      本文标题:安卓动画学习--帧动画

      本文链接:https://www.haomeiwen.com/subject/dxjyfxtx.html