【Android界面实现】View Animation 使用介绍

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992

我们可以使用view animation 动画系统来给View控件添加tween动画(下称“补间动画”),补间动画通过计算一些动画参数,比如说开始点,结束点,大小,旋转角度和一些其他的动画参数,来实现动画效果。

补间动画可以给View对象添加一系列简单的变换,比如位置,大小,角度或者是透明度。所以,如果你有一个TextView对象,你可以移动,旋转或者是变大。如果它有一个背景图片,背景图片也会随着text进行变化。

http://developer.android.com/reference/android/view/animation/package-summary.html 这个地址提供了补间动画需要的所有类。

一系列的动画指令被定义为补间动画,我们可以使用xml文件或者是纯代码进行定义。当我们想定义一个布局的时候,xml文件更加的方便,因为相对于硬编码,它可读性好、复用性强并且易于替换。所以,在下面的实例中,我们将使用xml的方式(想要了解更多的关于硬编码而不是xml方式的信息,请查阅AnimationSet类和Animation的子类)。

我们可以通过设置属性来决定我们想要动画什么时候发生,持续的时长等等。动画的变换可以是顺序发生的,也可以是同时发生的。比如,我们可以把一个TextView从左移动到右,然后旋转180度,或者是,我们可以让移动的动画和旋转动画同时发生。每一种动画变换都需要设置自己特有的属性集合(大小变化需要设置开始大小和结束大小,旋转变化需要设置开始角度和结束角度,其他的也类似),还需要设置一些共同的属性,比如开始时间和持续时间。如果我们想让很多变换一起发生,给他们设置相同的开始时间即可。如果想让变换顺序发生,我们只需要把开始时间设置成前面动画的持续总时间就可以了。

如果我们想通过xml文件创建动画,我们需要在工程的res目录下,创建一个anim文件夹,文件必须有且只有一个根元素,比如<alpha>,<scale>,<translate>,<rotate>,插值器元素,或者是一个<set>元素里面包含这些动画元素(也可以再包含一个set元素)。如果我们想让动画顺序发生,我们比如设置单独的startOffset属性,就像下面的例子。

下面的这个xml文件来自ApiDemo,用来伸缩然后同时旋转一个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)点在屏幕的左上角上面,向右为x正坐标,向下是y的正坐标。

一些值,比如说pivotX,可以指定与自身或者是父类相关。请确保你使用的格式是你想要的效果的正确格式,比如,50%是相对于自身的50%,但是50就不一样了。

我们也可以指定一个interpolator(插值器)来确定变换的时间如何变化,Android里面包含了几中插值器子类,每一种都有自己的加速度曲线,比如accelerateInterpolator,会告诉变换在开始的时候速度比较慢,然后开始加速。我们可以在xml里面设置相关的属性。

如果我们把上面的代码叫做hyperspace_jump.xml,那么我们使用下面的代码,给一个ImageView控件添加动画。

ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
spaceshipImage.startAnimation(hyperspaceJumpAnimation);

作为startAnimatinon()的一个可选的方式,我们可以使用Animation,setStartTime()设置开始时间,然后使用View,setAnimation()设置动画

如果想了解更多XML用法和可选的tag的属性,请查看Animation Resources。

Note:

不管你的动画是移动还是放缩,设置了动画的View控件的边界都不会自动调整去适应,即使如此,动画依然会被绘制出来,及时超出了边界也不会被切割。然而,如果动画超出了父View的范围,那超出部分就会被切割。

原文地址:http://developer.android.com/guide/topics/graphics/view-animation.html

时间: 2024-10-01 05:07:43

【Android界面实现】View Animation 使用介绍的相关文章

【Android 动画】View Animation详解(一)

安卓平台目前提供了两大类动画,在Android 3.0之前,一大类是View Animation,包括Tween animation(补间动画),Frame animation(帧动画),在android3.0中又引入了一个新的动画系统:property animation,即属性动画.本篇文章主要介绍View Animation的基本使用方法与技巧,属性动画将在下一篇博文中介绍. Tween动画可以执行一系列简单变换(位置,大小,旋转,缩放和透明度).所以,如果你有一个TextView对象,您

Android视图动画-View Animation

视图动画主要有两种: 一.Tween Animation译为"补间动画" 1.scale译为"规模.比例",是对View进行特定范围的缩放2.alpha通过改变View的透明度实现View隐现的效果3.translate译为"转移",是对View进行位置的移动4.rotate译为"旋转",是让View围绕特定的点进行旋转PS:所有View的移动.隐藏.旋转仅仅是看到的动画效果,实际View的位置/大小/比例并没有发生本质上的改

【Android界面实现】Drawable Animation 使用介绍

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 (目前只能用在View对象上的动画效果的实现有两种,一种就是上一篇的View Animation,即补间动画,剩下的一种,就是这一篇要介绍的,Drawable Animation,即帧动画.在最新版本的API中,出现了一个更加强大的方式,PropertyAnimation,即属性动画,稍后将会介绍) Drawable animation允许我们一张一张的加载Drawable资源.这是一种传统的动画方式,通

Android Animation学习(六) View Animation介绍

View Animation View animation系统可以用来执行View上的Tween animation和Frame animation. Tween animation可以在View对象上执行一系列的简单变换,比如位置.尺寸.旋转.透明度等. animation package 包中包含了tween animation所有的类. 一系列的动画命令定义了一个完整的tween animation,可以用代码定义也可以用XML资源文件定义. XML资源文件 XML资源文件的使用可以见:A

*Android动画View Animation

Animations 一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等,这些效果可以应用在绝大多数的控件中. 二.Animations的分类 Animations从总体上可以分为两大类: 1.Tweened Animations:该类Animations提供了旋转.移动.伸展和淡出等效果.Alpha——淡入淡出,Scale——缩放效果,Rotate——旋转,Transl

【Android 基础】Animation 动画介绍和实现

在前面PopupWindow 实现显示仿腾讯新闻底部弹出菜单有用到Animation动画效果来实现菜单的显示和隐藏,本文就来介绍下吧. 1.Animation 动画类型 Android的animation由四种类型组成: XML中 alph 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 JavaCode中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果

Android动画三部曲之一 View Animation &amp; LayoutAnimation

转载请注明出处:http://blog.csdn.net/crazy1235/article/details/50612827 本篇文章对android的Tween动画和帧动画以及布局动画进行总结. Tween动画 XML语法介绍 插值器 Interpolator 自定义Interpolator 公共XML属性及对应的方法 ScaleAnimation 缩放动画 xml定义缩放动画 代码定义缩放动画 RotateAnimation 旋转动画 xml中设置旋转动画 代码中设置旋转动画 Transl

android 动画 ——视图动画(View Animation)

android动画分为视图动画(View Animation).属性动画(Property Animation) 想看属性动画(Property Animation):请移步至http://blog.csdn.net/u013424496/article/details/51700312 这里我们来说下视图动画(View Animation)的纯代码写法,还有一种是xml调用, 对于xml调用可以去看 http://blog.csdn.net/u013424496/article/details

Android动画之二:View Animation

作为一个博客<Android其中的动画:Drawable Animation>.android动画主要分为三大部分.上一篇博客已经解说Drawable Animation的使用方法,即逐帧地显示图片,常常运用于动态显示一个进度动画,这是出现频率最高的应用场景.接下来.我们这篇文章将循序渐进.介绍View Animation. View Animation也是我们平时非常多书籍所说的Tweened Animation(有人翻译为补间动画).View Animation分为4大类:AlphaAni