onlyloveyd

Cherish Android and Keep Going

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

简介

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;
}

效果图

这里写图片描述

阅读更多

扫码向博主提问

去开通我的Chat快问

poorkick

博客专家

欢迎交流
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/poorkick/article/details/52910073
文章标签: android 动画
个人分类: Android 基础知识
所属专栏: 呱呱Android基础
想对作者说点什么? 我来说一句

android 帧动画

2013年08月17日 908KB 下载

android 动画

2016年04月20日 5.66MB 下载

Android动画之Animation

2016年06月11日 3.66MB 下载

android动画

2015年06月02日 2.96MB 下载

android基本动画大盘点

2015年06月16日 2.9MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭