两种实现方式:
①Tween Animation 。
②Frame Animation是顺序播放事先做好的图像,跟电影类似。
第二种方法相对比较简单,做个demo:
res/anim/loading_anim.xml :
<?xml version="1.0" encoding="UTF-8"?>
<!-- 使用Frame Animation方式实现动画的格式是:
首先是animation-list根节点,animation-list根节点中包含多个item子节点,每个item节点定义一帧动画
XML属性及其说明
drawable 当前帧引用的drawable资源
duration 当前帧显示的时间(毫秒为单位)
oneshot 如果为true,表示动画只播放一次停止在最后一帧上,如果设置为false表示动画循环播放。
variablePadding If true, allows the drawable’s padding to change based on the current state that is selected.
visible 规定drawable的初始可见性,默认为flase -->
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="200" android:drawable="@drawable/loading1" />
<item android:duration="200" android:drawable="@drawable/loading2" />
<item android:duration="200" android:drawable="@drawable/loading3" />
<item android:duration="200" android:drawable="@drawable/loading4" />
<item android:duration="200" android:drawable="@drawable/loading5" />
<item android:duration="200" android:drawable="@drawable/loading6" />
<item android:duration="200" android:drawable="@drawable/loading7" />
<item android:duration="200" android:drawable="@drawable/loading8" />
</animation-list>
WelcomeAct:
public class WelcomeAct extends Activity {
private AnimationDrawable rocketAnimation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置登录无标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.welcome);
// ProgressBar loading = (ProgressBar)findViewById(R.id.loading);
// loading.setVisibility(View.VISIBLE);
ImageView rocketImage = (ImageView) findViewById(R.id.loading);
rocketImage.setBackgroundResource(R.anim.loading_anim);
rocketAnimation = (AnimationDrawable)rocketImage.getBackground();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
rocketAnimation.start();
return true;
}
return super.onTouchEvent(event);
}
}
注意:启动Frame Animation动画的代码rocketAnimation.start();不能在OnCreate()中,因为在OnCreate()中AnimationDrawable还没有完全的与ImageView绑定,在OnCreate()中启动动画,就只能看到第一张图片。
Android SDK中对AnimationDrawable的介绍:
AnimationDrawable
|
获取、设置动画的属性 |
|
int getDuration() |
获取动画的时长 |
int getNumberOfFrames() |
获取动画的帧数 |
boolean isOneShot()
Void setOneShot(boolean oneshot)
|
获取oneshot属性 设置oneshot属性 |
void inflate(Resurce r,XmlPullParser p, AttributeSet attrs) |
|
增加、获取帧动画 |
Drawable getFrame(int index) |
获取某帧的Drawable资源 |
void addFrame(Drawable frame,int duration) |
为当前动画增加帧(资源,持续时长) |
动画控制 |
void start() |
开始动画 |
void run() |
外界不能直接掉调用,使用start()替代 |
boolean isRunning() |
当前动画是否在运行 |
void stop() |
停止当前动画 |
分享到:
相关推荐
在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要工具之一,特别是在创建加载(Loading)效果时。本文将深入探讨如何使用Android Animation来实现动态的Loading效果。 一、Android Animation概述 ...
通过分析这个“Animation动画Demo源码”,我们可以学习到如何在Android应用中创建、组合和控制各种动画,以及如何利用插值器和监听器来实现更精细的动画控制。这些知识对于提升应用的用户体验至关重要,也是Android...
Android Animation主要分为两大类:补间动画(Tween Animation)和帧动画(Frame Animation)。本资源文件主要关注补间动画,这是一种通过改变对象属性(如位置、大小、透明度等)在一段时间内平滑过渡的动画效果。 补...
在Android开发中,动画(Animation)是提升用户体验和界面交互性的重要工具。Android动画主要分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。本篇将深入探讨这两种动画机制,以及如何在...
Android动画分为多种类型,包括`Animation`类(补间动画)、`ViewPropertyAnimator`(属性动画)、以及`Transition`(过渡动画)。在这里,我们主要关注基于`Animation`类的自定义动画,它是Android早期版本中主要的...
补间动画(Tween Animation)是Android提供的基本动画类型,它通过对对象的透明度、大小、位置或旋转等属性进行平滑过渡来实现视觉效果。本篇文章将深入探讨Android中的Tween Animation,包括其原理、使用方法以及...
Android Animation的学习涵盖了多种技术,包括属性动画(Property Animation)、视图动画(View Animation)以及过渡动画(Transition Animation)。下面将详细介绍这些概念及其应用。 1. 视图动画(View Animation...
在Android开发中,动画是提升用户体验的关键因素之一。...开发者可以研究这些源码,了解Android动画系统的内部工作原理,学习如何根据需求定制和组合各种动画效果,从而提高应用的视觉吸引力和交互体验。
首先,"android Animation图片渐变动画"指的是在Android平台上,通过编程方式让图片从一种状态平滑地过渡到另一种状态,这通常涉及到Alpha(透明度)动画、Scale(缩放)动画、Rotate(旋转)或Translate(平移)...
在Android平台上,动画是提升用户体验的关键元素,它可以让应用程序更加生动和吸引人。Android提供了多种动画类型,包括透明度变化、位移、缩放和旋转等。这些效果可以通过`Animation`类及其子类来实现。下面我们将...
在Android开发中,动画是提升用户体验的关键因素之一。Android提供了多种动画类型,其中包括 Tween 补间动画和 Frame 逐帧动画。本篇文章将主要聚焦于Frame动画,这是一种通过连续显示不同帧图片来创建动画效果的...
通过`Android Animation Demo`,你可以亲自尝试和学习这些动画,加深对Android动画系统的理解,从而提升应用的视觉效果和用户体验。同时,参考提供的博客文章,会有更多实践经验和技巧等待你去探索。
### Android的动画Animation详解 #### 一、动画概述 Android平台提供了丰富的动画支持,通过不同的方式可以实现多种视觉效果,从而提升用户体验。Android动画主要分为两大类:Tween动画(渐变动画)和Frame-by-...
Android属性动画(Property Animation)是Android 3.0(API级别11)引入的一个强大功能,它极大地扩展了Android的动画系统,使得开发者能够实现更丰富、更动态的视觉效果。与视图动画(View Animation)不同,属性...
在Android开发中,动画效果是提升用户体验的关键因素之一。渐变动画是Android动画体系中的一种基本类型,它可以为用户界面带来生动和动态的感觉。本文将深入探讨四种主要的渐变动画:Alpha(透明度)、Scale(缩放)...
本资源“Animation动画实例源代码”提供了一系列详细实例,帮助开发者深入了解和实践Android中的动画技术。这些实例适用于ADT(Android Development Toolkit)版本10及ECLIPSE JUNO开发环境。 Android动画主要包括...
首先,我们要知道在Android中,动画主要分为两种类型:补间动画(Tween Animation)和帧动画(Frame Animation)。抖动动画属于补间动画的一种,因为它涉及到对象的位置、大小或透明度等属性的变化。补间动画是通过...
在Android开发中,加载动画...通过学习这个"LoadingAnimation 动画 加载动画"资源,开发者不仅可以了解到加载动画的设计原则,还能掌握不同类型的动画实现方式,并将其应用到实际项目中,提升应用的交互性和用户体验。
这份"安卓Android源码——(Animation动画).zip"文件很可能包含了关于这三种动画类型的详细实现和解析。 1. **视图动画(View Animation)**: 视图动画是Android早期版本中提供的动画机制,主要通过`Animation`类...