<Android 基础(二十五)> Frame Animation

原创 2016年10月24日 11:25:05

简介

Frame Animation, 逐帧动画,通过定义一系列的Drawable对象来实现动画效果,可以用来作为视图的背景。
Frame Animation在代码中体现为AnimationDrawable对象,可以通过xml文件快创建,放在在/res/drawable/目录下,设置为视图背景后,调用start()方法即可执行逐帧动画。

XML文件

Tags:
< animation-list > 作为父节点,代表Animation Drawable
< item >作为子节点,代表逐帧动画内容,一张一张图片

Attributes:

属性 含义
android:oneshot=”false true”
android:variablePadding=”false true”
android:visible=”false true”
android:drawable=”@drawable/xxxxx” item图片资源
android:duration=”xxxxx” drawable播放时间,单位ms

Res:
/res/drawable/{folder}

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/selected"
    android:oneshot="true"
    android:variablePadding="false"
    android:visible="true">

    <item android:drawable="@drawable/ic_action_add" android:duration="500"/>
    <item android:drawable="@drawable/ic_action_anchor" android:duration="500"/>
    <item android:drawable="@drawable/ic_action_alarm" android:duration="500"/>
    <item android:drawable="@drawable/ic_action_amazon" android:duration="500"/>
    <item android:drawable="@drawable/ic_action_ac" android:duration="500"/>

</animation-list>

Coding

使用XML资源

imageView.setBackgroundResource(R.drawable.frame_anim);//设置背景
Drawable bgDrawable = imageView.getBackground();//获取背景
if(bgDrawable instanceof AnimationDrawable) {
    ((AnimationDrawable) bgDrawable).start();//如果为AnimationDrawable则执行动画
}

纯代码实现

***
imageView.setBackground(createAnimationDrawable());//设置背景
Drawable bg = imageView.getBackground();
if(bg instanceof AnimationDrawable) {
    ((AnimationDrawable) bg).start();//开始动画
}

***
private AnimationDrawable createAnimationDrawable() {

    AnimationDrawable animationDrawable = new AnimationDrawable();
    animationDrawable.addFrame(getResources().getDrawable(R.drawable.ic_action_add), 500);
    animationDrawable.addFrame(getResources().getDrawable(R.drawable.ic_action_anchor), 500);
    animationDrawable.addFrame(getResources().getDrawable(R.drawable.ic_action_alarm), 500);
    animationDrawable.addFrame(getResources().getDrawable(R.drawable.ic_action_amazon), 500);
    animationDrawable.addFrame(getResources().getDrawable(R.drawable.ic_action_ac), 500);
    animationDrawable.setOneShot(false);
    animationDrawable.setVisible(true,true);
    return animationDrawable;
}

效果图

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

<Android 基础(二十五)> View Animation

View Animation 基本使用

Android基础夯实--重温动画(二)之Frame Animation

当你已经掌握了Tween Animation之后,再来看Frame Animation,你就会顿悟,喔,原来Frame Animation简单多了,那么恭喜你,你已经在Animation这条路上走得越...

Android Animation Frame逐帧动画

  • 2014年05月14日 11:31
  • 702KB
  • 下载

Android Animation Frame逐帧动画2

  • 2014年05月14日 11:35
  • 2.05MB
  • 下载

android开发步步为营之13:frame animation实现自动播放和手动播放

游戏开发过程中,动画肯定是需要的,Android动画Animation有两种,一种叫Tween Animation展现渐变效果,比如从大到小,从暗到明,旋转,从一个位置移动到另外一个位置,第二种叫Fr...

Animation_Frame_Android_XML

  • 2013年05月30日 00:56
  • 1.42MB
  • 下载

Android 动画详解之Frame动画 (Drawable Animation)

Frame动画就像是gif图,通过一些静态图片来达到动画的效果。 Android sdk中的AnimationDrawable就是专门针对Frame动画,当然Frame动画也可在java代码或者xm...

Android 动画之一 Drawable Animation —— 逐帧(Frame)动画

这几天打算把动画的基础都捋一下,就像我们已经知道的,动画大致有三类:(property动画,Tween动画、Frame动画),今天开始,我们就依次来看一下,他们都是怎么使用的吧^^。 今天先来看一下...

【Android】Frame Animation

 Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画。Frame动画可以被定义在XML文件中,也可以完全编码实现。...

Android动画之Frame Animation逐帧动画

所谓的逐帧动画,在我的理解并能不算是动画,它的实现是一系列相似的图片播放得出的效果.类似于幻灯片,附上实际效果图: 第一步: 你需要一系列图片,模拟动画,图片已上传.把这些图片放在drawable...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:<Android 基础(二十五)> Frame Animation
举报原因:
原因补充:

(最多只允许输入30个字)