`

Drawable Animation

阅读更多

Drawable Animation

 

        帧动画能使得你一个接一个的加载一组图片资源来产生动画。这是一种传统的动画方式。通过顺序的播放不同的图片,如同播放一个电影。AnimationDrawable类是Drawable动画(帧动画)的基础。

当你通过代码实现帧动画,你需要使用到AnimationDrawable类的API。而使用一个XML文件列出组成动画的所有帧来实现动画更简单。这种动画的XML文件位于你的Android工程的res/drawable/目录下。这种情况下,XML定义的是动画的帧顺序和每帧持续的时间。

 

        XML文件由<animation-list>元素和一些列的<item>子节点组成。<animation-list>元素作为XML文件的根节点。<item>子节点定义每一帧:每一帧对应一个drawable资源,还有该帧对应的动画持续时间。如下是帧动画的XML文件的例子:

 

 

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true">
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>

 

 

       该动画仅仅只有3帧。通过设置该帧列表的android:oneshot属性为true来设置该动画仅播放一次,然后停留在最后一帧的位置。如果设置为false,动画将无限循环。使用保存在res/drawable/目录下的rocket_thrust.xml文件,可以将该文件定义的动画作为一个背景图片添加在一个View对象上,然后调用该动画播放。如下是一个例子Activity,该例子Activity里,动画被添加到一个ImageView上,然后当触摸屏幕的时候播放动画:

 

AnimationDrawable rocketAnimation;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
    rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
    rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
}

public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
    rocketAnimation.start();
    return true;
}
    return super.onTouchEvent(event);
}

 

        注意:在AnimationDrawable上被调用的start()方法不能在Activity里的onCreate()方法里被调用。因为这时AnimationDrawable还没有被附加到window上。如果你想要立即的播放动画,而不需要交互,那么你能在Acitivity的onWindowFocusChanged()方法里调用该方法,这样当Window获取焦点后调用该方法。

关于XML语法、有效标签和属性的更多的介绍,参见Animation Resources

分享到:
评论

相关推荐

    DrawableAnimation简单示例

    这个“DrawableAnimation简单示例”涵盖了如何在应用中使用Drawable Animation的基本步骤,通过提供的两个示例代码包:CodeDrawableAnimation和XMLDrawableAnimation,我们可以深入理解这种动画实现方式。...

    博客《Android动画之一:Drawable Animation》附带源码 SwipeWithAnim

    在Android开发中,动画是提升用户体验的关键因素,Drawable Animation是Android提供的一种基础动画形式,尤其适用于简单的视图变换。这篇博客《Android动画之一:Drawable Animation》深入探讨了如何使用Drawable ...

    博客《Android动画之一:Drawable Animation》附带源码

    这篇博客《Android动画之一:Drawable Animation》深入探讨了如何利用Drawable资源创建动画,这是Android系统提供的基本动画类型之一。Drawable Animation主要适用于简单的帧动画,例如旋转、缩放或平移等效果。 在...

    Android AnimationDemo_DrawableAnimation帧动画

    Android提供了多种动画实现方式,其中之一就是DrawableAnimation,也就是帧动画。帧动画是一种将一系列连续的图像快速切换来形成动态效果的技术,类似于传统的电影胶片。本篇将详细介绍Android AnimationDemo中的...

    android动画之帧动画(drawable animation)和补间动画(view animation)

    本文将深入探讨两种主要的动画类型:帧动画(Drawable Animation)和补间动画(View Animation),并以一个简单的“太阳地球月亮”模型为例,来阐述这两种动画的实现原理和应用场景。 ### 帧动画 (Drawable ...

    Android Animation示例(View Animation, Drawable Animation)

    View Animation Only animate View objects If animate non-view objects, you have to implement your own code ...Drawable Animation Load drawable resources and display them one frame after another

    帧动画(Drawable Animation)示例源码

    在`res/drawable`目录下创建一个XML文件,例如`animation_list.xml`,定义帧动画的帧和它们的显示时间。每个`&lt;item&gt;`标签代表一帧,`android:duration`属性定义该帧显示的毫秒数。 ```xml &lt;animation-list xmlns...

    AnimationDrawableDemo

    每一帧都是一个`Drawable`,例如PNG图片,可以在XML中定义并添加到`&lt;animation-list&gt;`标签内。每一帧都有一个`android:duration`属性,用来指定该帧显示的时间,所有帧的总时间决定了动画的总时长。 在...

    Android之加载动画自定义控件

    本文将深入探讨如何使用Drawable Animation实现一个加载动画自定义控件。Drawable Animation是Android提供的一种简单动画机制,适合创建简单的序列帧动画。 首先,了解Drawable Animation的基本概念。Drawable ...

    Android Animation Frame逐帧动画2

    例如,可以设置`&lt;animation-list&gt;`标签,包含多个`&lt;item&gt;`标签,每个`&lt;item&gt;`代表一个帧,并指定对应的图片资源和持续时间。 2. **编程方式**:直接在代码中创建并设置`AnimationDrawable`对象,加载帧图像资源,...

    大量加大drawable下图片,导致OOM,使用二次裁剪

    这个问题在标题“大量加大drawable下图片,导致OOM,使用二次裁剪”中被提及,暗示了解决这一问题的一种策略——二次裁剪和图片压缩。 首先,我们要理解什么是OOM。在Java或Android环境中,每个应用都有其固定的...

    动画的顺序按时播放

    本文将深入探讨如何利用`AnimationSet`和`DrawableAnimation`实现动画的顺序播放,从而为用户提供流畅、有序的视觉效果。 首先,我们来了解一下`AnimationSet`。`AnimationSet`是Android动画系统中的一个类,它允许...

    Android代码-Android-Animation-Set

    Drawable Animation / 帧动画 / Frame 动画 English explanation can go to read this article Ⅲ. Property Animation / 属性动画 English explanation can go to read this article Ⅳ. Ripple Effect / Touch ...

    android3.0以后3种动画.pdf

    Android 3.0 以后,动画系统得到了显著增强,新增了Property Animation,与之前的Tween Animation(视图动画)和Drawable Animation(帧动画)一起构成了Android动画的三大支柱。下面我们将详细探讨这三种动画模式。...

    AnimationDemo

    DrawableAnimation也是指此动画。补间动画:渐变动画支持四种类型:平移(Translate)、旋转(Rotate)、缩放(Scale)、不透明度(Alpha);只是显示的位置变动,View的实际位置未改变,表现为View移动到其他地方,...

    Android 动画机制 补间、属性、帧动画、源码分析

    * Drawable Animation:帧动画,一个一个的展示Drawable的resources,就像放幻灯片一样。 * Property Animation :属性动画只对Android 3.0(API 11)以上版本的Android系统才有效,这种动画可以设置给任何Object...

    Android动画Demo 属性动画

    - DrawableAnimation Demo:演示了如何通过XML定义和启动一个帧动画,包括设置动画的持续时间、重复次数等。 - PropertyAnimation Demo:这部分内容最为关键,可能包含了使用`ValueAnimator`自定义动画效果,用`...

    非常好的多

    本文将深入探讨Android中的两种主要动画类型:property animation(3.0及更高版本)和view animation,以及drawable animation,即frame animation。 首先,property animation系统是自Android 3.0(API级别11)...

    Android实战页面内容加载动画

    在"DrawableAnimation"这个压缩包文件中,可能包含了上述几种Drawable动画的示例代码或者资源文件。开发者可以通过解析和理解这些文件,学习如何在代码中实例化和启动这些Drawable动画,以及如何将它们应用于UI组件...

    android 动画

    android 动画 简单使用 property animation view animation(tween animation)drawable animation(frame animation)

Global site tag (gtag.js) - Google Analytics