转载请注明出处: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文件创建动画,我们须要在project的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

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

  1. Android Animation学习(六) View Animation介绍

    Android Animation学习(六) View Animation介绍 View Animation View animation系统可以用来执行View上的Tween animation和F ...

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

        转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992     (眼下仅仅能用在View对象上的动画效果的实现有两种,一种就是上一篇的View Animat ...

  3. Android动画View Animation

    Animations 一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等, ...

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

    在前面PopupWindow 实现显示仿腾讯新闻底部弹出菜单有用到Animation动画效果来实现菜单的显示和隐藏,本文就来介绍下吧. 1.Animation 动画类型 Android的animati ...

  5. Android动画主要包含补间动画(Tween)View Animation、帧动画(Frame)Drawable Animation、以及属性动画Property Animation

    程序运行效果图: Android动画主要包含补间动画(Tween)View Animation.帧动画(Frame)Drawable Animation.以及属性动画Property Animatio ...

  6. [Android]Animation 动画介绍和实现

    Animation动画效果来实现菜单的显示和隐藏,本文就来介绍下吧. 1.Animation 动画类型 Android的animation由四种类型组成: XML中 alph 渐变透明度动画效果 sc ...

  7. Android动画View Animation与Drawable Animation

    Animations 一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等, ...

  8. 浅谈Android样式开发之View Animation (视图动画)

    引言 一个用户体验良好的App肯定少不了动画效果.Android为我们提供了2种动画框架,分别是视图动画(View Animation)和属性动画(Property Animation).视图动画比较 ...

  9. Android Animation学习(一) Property Animation原理介绍和API简介

    Android Animation学习(一) Property Animation介绍 Android Animation Android framework提供了两种动画系统: property a ...

随机推荐

  1. Sql实现行列转换

    从MS Sql Server 2005微软就推出了pivot和unpivot实现行列转换,这极大的方便了我们存储数据和呈现数据.今天就对这两个关键字进行分析,结合实例讲解如何存储数据,如何呈现数据. ...

  2. Web安全测试指南--认证

    认证: 5.1.1.敏感数据传输: 编号 Web_Authen_01_01 用例名称 敏感数据传输保密性测试 用例描述 测试敏感数据是否通过加密通道进行传输以防止信息泄漏. 严重级别 高 前置条件 1 ...

  3. 使用Git代替FTP进行虚拟主机的代码管理

    为什么要使用Git代替FTP的原因: 由于本人菜鸟+穷屌,玩不起VPS和其他大牌的云主机,所以呢就只能在景安(这不是广告..)申请了免费的虚拟主机,就想着自己玩玩而已,免费的嘛,空间流量什么的就不讨论 ...

  4. rocketmq持久化方式

    推荐看下RocketMQ,使用文件做持久化, 并支持分布式事务(虽然可能造成较多的写脏), 异步刷盘,内存预分配, 高可用采用了同步双写及异步复制的方式, 通信是用netty做的,基本上所有耗时的操作 ...

  5. [Android Pro] Property Animation

    声明:下面的内容需要Android API level 11的支持 Property Animation是如何运作的 首先,来看一下两个不一样的Property Animation场景: 场景一(Li ...

  6. 统一D3D与OpenGL坐标系统

    作者:游蓝海(http://blog.csdn.net/you_lan_hai) DirectX 3D与OpenGL坐标系统的差异性,给我们带来非常大的麻烦.让跨平台编程的新手非常困惑.近期在做一个跨 ...

  7. Redis的5个常见使用场景

    1.会话缓存(Session Cache) 最常用的一种使用Redis的情景是会话缓存(session cache).用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持 ...

  8. saltstack之crontab管理用法

    一.创建定时任务 crontab: #脚本脚识 cron.present: #模板:cron 计划任务 功能:present - name: /usr/sbin/ntpdate times.aliyu ...

  9. [转] 一篇好文 ---steve jobs (stay hungry, stay foolish)

    斯蒂夫•保罗•乔布斯(Steve Paul Jobs,1955年2月24日出生-)是蘋果電腦的現任首席執行長(首席执行官)兼創辦人之一.同時也是Pixar動畫公司的董事長及首席執行長.这是他2005在 ...

  10. JedisCluster操作redis集群demo

    package com.chenk; import java.util.HashMap; import java.util.HashSet; import java.util.List; import ...