`

View Animation

阅读更多

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》附带源码 ViewAnimationDemo

    **Android 动画详解:深入理解View Animation** 在Android开发中,动画是提升用户体验的关键因素之一,能够使应用更加生动和吸引人。本篇将详细探讨Android中的View Animation,它是Android早期提供的动画机制,...

    View Animation Demo 源代码

    "View Animation Demo 源代码"是一个典型的Android项目,展示了如何利用视图动画(View Animation)来实现各种动态效果,如旋转、缩放等。这个源代码提供了很好的学习资源,帮助开发者理解和实践Android中的基本动画...

    Android Animation示例(View Animation, Drawable Animation)

    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 ...

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

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

    安卓Android源码——View中添加Animation.zip

    本资源包"安卓Android源码——View中添加Animation.zip"主要关注如何在Android的View组件中应用动画效果。接下来,我们将深入探讨Android视图动画的实现原理及其在实际开发中的应用。 一、Android动画类型 1. **帧...

    Android代码-View中添加Animation.zip

    `View`中的动画主要分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。本压缩包"Android代码-View中添加Animation.zip"可能包含了如何在Android应用的`View`中添加这两种动画的相关代码...

    Android使用View Animation实现动画加载界面

    Android View Animation实现动画加载界面 Android View Animation是Android系统中的一种动画实现方式,通过使用View Animation,可以实现不同的动画效果,例如旋转、缩放、平移等。下面是使用View Animation实现...

    android-view-animation抖动shake

    "android-view-animation抖动shake"这个话题主要涉及到了Android视图动画中的shake效果,这是一种常见的错误提示或吸引用户注意力的动画方式,比如当用户输入错误时,可以令编辑框(EditText)进行抖动来提示。...

    Android源码——View中添加Animation.zip

    这个压缩包“Android源码——View中添加Animation.zip”包含了关于在Android的View中如何添加动画的详细资源,包括一个图片示例(1-1209122202530-L.png)、源码说明文本(源码说明.txt)、以及一个链接到更多源码的...

    Android View中添加Animation.zip

    本资料“Android View中添加Animation.zip”显然聚焦于如何在Android的View组件上应用各种动画效果。以下是关于Android View动画的详细阐述: 1. **基本概念** - **Animation**:Android中的动画主要分为两种类型...

    SurfaceView中添加Animation

    主要有两种类型的动画:Property Animation(API 11+)和View Animation(API 1+)。在这个例子中,我们可能使用的是View Animation,因为SurfaceView通常需要兼容低版本Android设备。 1. **定义Animation** 创建...

    Android程序研发源码Android View中添加Animation.zip

    在Android程序开发中,View动画(Animation)是一个关键部分,用于增强用户界面的交互性和视觉效果。本资源“Android程序研发源码Android View中添加Animation.zip”提供了关于如何在Android View上实现动画的源代码...

    Android View中添加Animation.rar

    本资源"Android View中添加Animation.rar"主要探讨如何在Android的View组件中应用动画。通过学习这些内容,开发者可以更好地掌握Android动画机制,为应用程序增添动态美感。 首先,Android提供了两种主要的动画类型...

    AndroidView中添加Animation.zip

    本资源"AndroidView中添加Animation.zip"显然包含了关于如何在Android视图(View)中应用动画的详细教程或示例代码。我们将深入探讨Android视图动画的几个关键知识点。 首先,Android提供了两种主要类型的视图动画...

    Android View中添加Animation-IT计算机-毕业设计.zip

    Android中的动画分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。属性动画系统是自Android 3.0(API级别11)引入的,它可以改变对象的任意属性,并且这些变化不仅体现在屏幕上,还会...

    安卓Animation实现APP引导用户点击动画

    Android Animation主要包括三种类型的动画:Property Animation、View Animation和Transition Animation。在本示例中,我们主要关注的是View Animation,它是早期版本(API Level 8及以下)中的动画机制,主要通过...

    AndroidAnimation

    Android Tween Animation分为两种主要类型:Property Animation和View Animation。Property Animation是Android 3.0(API Level 11)引入的新特性,它可以对对象的任何属性进行动画处理,而不仅仅是View。然而,View...

    Animation动画的解析与自定义Animation动画

    首先,Android提供了两种主要的动画机制:属性动画(Property Animation)和视图动画(View Animation)。属性动画是在Android 3.0(API Level 11)引入的,它允许开发者对对象的任何属性进行动画处理,而不仅仅是视图...

    Animation动画实例源代码

    Android动画主要包括两种类型:属性动画(Property Animation)和视图动画(View Animation)。视图动画是早期Android版本中的动画系统,主要通过改变视图的位置、大小、透明度等属性来模拟动画效果,但并不真正改变...

Global site tag (gtag.js) - Google Analytics