View Animation
你能使用view动画系统在Views上实现补间动画。补间动画使用例如开始点、结束点、尺寸、选择和动画的其他常见信息来计算动画。
补间动画能在View对象的内容上执行一系列简单的转换(位置、大小、选择和透明度)。因此,如果你有一个TextView对象,你能移动、选择、放大或者缩小该文本。如果你有一个背景图片,该背景图片也会随着该文本转换和改变。animation package包提供了实现补间动画需要用的所有类。
通过动画指令指令序列来定义补间动画,使用XML或者Android代码来实现动画。像定义一个布局一样,我们推荐使用XML文件来实现补间动画,因为,相比于硬编码实现,XML文件实现更易读、可复用和可热插拔。下面的例子里,我们使用XML。(如果想了解如何在app里通过代码实现动画,而不是XML文件,参见AnimatonSet类和其他的Animation的子类)
动画指令定义了你想要发生的View转换,什么时候发生,持续多长时间等。动画可以是顺序的或者同步的。例如,你能让一个TexView里的文本内容从左边移动到右边,然后旋转180度,或者你能让文本移动的同时旋转。每种转换接受一些参数用于指定该转换(对于大小改变时开始时的大小、结束时的大小,而对于旋转动画,则开始时的角度和结束时的角度,等等)。还包括一些其他的通用的参数(例如:开始时间和持续时长)。为了让多种转换同时发生,指定相同的开始时间;如果为了顺序播放动画,通过开始时间加上个转换的持续时间来计算该动画的开始时间。
该动画的XML文件位于你的android工程的res/anim/目录下。该文件必须只能有一个根元素:该根元素只能是<appha>、<scale>、<translate>、<rotate>,内插器元素,或者<set>元素。<set>元素持有这些元素组(可能会包含另一个<set>元素)。默认地,所有的动画指令是同时播放的。为了使得它们顺序播放,你必须指定startOffset属性,如下示例所示。
下面的例子来自于ApiDemos里,用于定义一个拉伸动画,同时对该View对象进行旋转。
<set android:shareInterpolator="false">
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.4"
android:fromYScale="1.0"
android:toYScale="0.6"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="700" />
<set android:interpolator="@android:anim/decelerate_interpolator">
<scale
android:fromXScale="1.4"
android:toXScale="0.0"
android:fromYScale="0.6"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="700"
android:duration="400"
android:fillBefore="false" />
<rotate
android:fromDegrees="0"
android:toDegrees="-45"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="700"
android:duration="400" />
</set>
</set>
屏幕坐标(上面的例子里没有用到)在上面的左上角是(0,0),向下和向右坐标增大。
一些值,例如pivotX,能通过相对于它自身或者相对于父View来指定。请确保使用满足你需求的合适的格式("50"表示相对于父布局的50%,"50%"表示相对于自身的50%)。
你能通过指定插值器来决定动画期间的转换值。Android提供了一些插值器用来指定特定的各种各样的加速曲线。例如,AccelerateInterpolator表示开始时慢,然后加速。对应有一个属性值来描述加速度,在XML里指定。
下面的代码了使用res/anim/目录下的hyperspace_jump.xml文件,然后将该XML文件定义的动画应用到布局文件里的ImageView对象上。
ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
spaceshipImage.startAnimation(hyperspaceJumpAnimation);
可以使用startAnimation()开启动画,你也能使用Animation.setStartTime()定义一个开始时间,然后通过调用View.setAnimation()将该动画指定到View上。
更多的XML语法、有效标签和属性的介绍,参见Animation Resources。
注意:不管你的View以何种方式移动或者缩放,持有动画的View的边界不会自动的调整来适应该改变。甚至View可能仍然在View的边界外绘制,而不会被修剪。然而,如果View动画超过了父View的边界View将被裁剪。
相关推荐
**Android 动画详解:深入理解View Animation** 在Android开发中,动画是提升用户体验的关键因素之一,能够使应用更加生动和吸引人。本篇将详细探讨Android中的View Animation,它是Android早期提供的动画机制,...
"View Animation Demo 源代码"是一个典型的Android项目,展示了如何利用视图动画(View Animation)来实现各种动态效果,如旋转、缩放等。这个源代码提供了很好的学习资源,帮助开发者理解和实践Android中的基本动画...
View Animation Only animate View objects If animate non-view objects, you have to implement your own code takes less time to setup and requires less code to write Drawable Animation Load drawable ...
本文将深入探讨两种主要的动画类型:帧动画(Drawable Animation)和补间动画(View Animation),并以一个简单的“太阳地球月亮”模型为例,来阐述这两种动画的实现原理和应用场景。 ### 帧动画 (Drawable ...
本资源包"安卓Android源码——View中添加Animation.zip"主要关注如何在Android的View组件中应用动画效果。接下来,我们将深入探讨Android视图动画的实现原理及其在实际开发中的应用。 一、Android动画类型 1. **帧...
`View`中的动画主要分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。本压缩包"Android代码-View中添加Animation.zip"可能包含了如何在Android应用的`View`中添加这两种动画的相关代码...
Android View Animation实现动画加载界面 Android View Animation是Android系统中的一种动画实现方式,通过使用View Animation,可以实现不同的动画效果,例如旋转、缩放、平移等。下面是使用View Animation实现...
"android-view-animation抖动shake"这个话题主要涉及到了Android视图动画中的shake效果,这是一种常见的错误提示或吸引用户注意力的动画方式,比如当用户输入错误时,可以令编辑框(EditText)进行抖动来提示。...
这个压缩包“Android源码——View中添加Animation.zip”包含了关于在Android的View中如何添加动画的详细资源,包括一个图片示例(1-1209122202530-L.png)、源码说明文本(源码说明.txt)、以及一个链接到更多源码的...
本资料“Android View中添加Animation.zip”显然聚焦于如何在Android的View组件上应用各种动画效果。以下是关于Android View动画的详细阐述: 1. **基本概念** - **Animation**:Android中的动画主要分为两种类型...
主要有两种类型的动画:Property Animation(API 11+)和View Animation(API 1+)。在这个例子中,我们可能使用的是View Animation,因为SurfaceView通常需要兼容低版本Android设备。 1. **定义Animation** 创建...
在Android程序开发中,View动画(Animation)是一个关键部分,用于增强用户界面的交互性和视觉效果。本资源“Android程序研发源码Android View中添加Animation.zip”提供了关于如何在Android View上实现动画的源代码...
本资源"Android View中添加Animation.rar"主要探讨如何在Android的View组件中应用动画。通过学习这些内容,开发者可以更好地掌握Android动画机制,为应用程序增添动态美感。 首先,Android提供了两种主要的动画类型...
本资源"AndroidView中添加Animation.zip"显然包含了关于如何在Android视图(View)中应用动画的详细教程或示例代码。我们将深入探讨Android视图动画的几个关键知识点。 首先,Android提供了两种主要类型的视图动画...
Android中的动画分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。属性动画系统是自Android 3.0(API级别11)引入的,它可以改变对象的任意属性,并且这些变化不仅体现在屏幕上,还会...
Android Animation主要包括三种类型的动画:Property Animation、View Animation和Transition Animation。在本示例中,我们主要关注的是View Animation,它是早期版本(API Level 8及以下)中的动画机制,主要通过...
Android Tween Animation分为两种主要类型:Property Animation和View Animation。Property Animation是Android 3.0(API Level 11)引入的新特性,它可以对对象的任何属性进行动画处理,而不仅仅是View。然而,View...
首先,Android提供了两种主要的动画机制:属性动画(Property Animation)和视图动画(View Animation)。属性动画是在Android 3.0(API Level 11)引入的,它允许开发者对对象的任何属性进行动画处理,而不仅仅是视图...
Android动画主要包括两种类型:属性动画(Property Animation)和视图动画(View Animation)。视图动画是早期Android版本中的动画系统,主要通过改变视图的位置、大小、透明度等属性来模拟动画效果,但并不真正改变...