<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 基本使用
  • poorkick
  • poorkick
  • 2016年10月16日 09:07
  • 521

android中animation之Frame-By-Frame Animations

1.前言 android的animation即是动画的意思,其实他有两种形式。Frame-By-Frame Animations...
  • maxi1174391719
  • maxi1174391719
  • 2014年07月15日 14:43
  • 354

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

Frame动画就像是gif图,通过一些静态图片来达到动画的效果。 Android sdk中的AnimationDrawable就是专门针对Frame动画,当然Frame动画也可在java代码或者xm...
  • u014163726
  • u014163726
  • 2014年11月12日 16:29
  • 2231

Android动画解析(一)—— Frame Animation(帧动画)

动画在我们实际开发中占有很重要的地位,一个优秀的动画能为我们的app应用增色很多,同时一个优秀的动画衔接能够增加我们app的逻辑展示。在Android系统中,系统给我们提供了几种动画的支持,分别是Fr...
  • Mr_dsw
  • Mr_dsw
  • 2016年03月05日 21:35
  • 5367

Android 动画系列之逐帧(Frame)动画详解

前段时间太忙了,已经好久没发博客了,好多想写的东西都没时间写,想了想,这个星期就抽时间写一个动画合集吧,把Android中用到的动画做一个大合集。忘记的时候可以上博客来看看。这一篇就先写Android...
  • Airsaid
  • Airsaid
  • 2016年06月01日 22:47
  • 1386

android动画——Frame by Frame Animation

在写Frame by Frame Animation之前先介绍一下android中支持的动画类型。android有两种机制让用户创建简单的动画——tweened animation 和 frame b...
  • sun_star1chen
  • sun_star1chen
  • 2013年10月10日 22:41
  • 1325

Android Animation之frame animation

Frame animation由一系列的静态图片构成,并且按照一定的顺序连续显示,类似电影的感觉。 使用animation-list创建图片的序列,属性android:oneshot表示是否...
  • lihenair
  • lihenair
  • 2013年12月21日 22:39
  • 1342

Android 帧动画(Frame Animation)

前言自己从事Android这个工作,但是很少写这样的帖子。然后想把自己学习到的点点滴滴都记录下来然后分享给大家。今天讲一讲帧动画。...
  • qq_36510659
  • qq_36510659
  • 2017年12月15日 17:01
  • 18

【Frame Animation 逐帧动画】

1、  本文要完成的任务有: 多张连续图片组成常见的动画效果(暂时有5种) 按钮控制动画的播放与停止   2、 效果展示图如下:   3、 任务具体实现: 1--->首先我们要准备一系...
  • bear_huangzhen
  • bear_huangzhen
  • 2016年07月12日 21:11
  • 989

Android[动画] Frame Animation

在开始实例讲解之前,先引用官方文档中的一段话: Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画。Frame动画可以被定义在XML文件中,也可以完全编码实现...
  • u014346514
  • u014346514
  • 2014年03月25日 14:15
  • 283
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:<Android 基础(二十五)> Frame Animation
举报原因:
原因补充:

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