转载请注明出处: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. ElasticSearch安装为Windows服务

    目前我都是在windows的环境下操作是Elasticsearch,并且喜欢使用命令行 启动时通过cmd直接在elasticsearch的bin目录下执行elasticsearch 这样直接启动的话集 ...

  2. rust安装

    http://blog.csdn.net/teamlet/article/details/50838996

  3. node.js创建并引用模块

    app.js var express = require('express'); var app = express(); var con = require('./content'); con.he ...

  4. (判断url文件大小)关于inputStream.available()方法获取下载文件的总大小

    转自:http://hold-on.iteye.com/blog/1017449 如果用inputStream对象的available()方法获取流中可读取的数据大小,通常我们调用这个函数是在下载文件 ...

  5. 央行mlf,SLF,PSL,MLF,SLO

    央行mlf是什么意思 中国人民银行 中国人民银行(The People's Bank Of China,英文简称PBOC),简称央行,是中华人民共和国的中央银行,中华人民共和国国务院组成部门.在国务院 ...

  6. [转]SSIS cannot convert between unicode and non-unicode string

    本文转自:http://www.mssqltips.com/sqlservertip/1393/import-excel-unicode-data-with-sql-server-integratio ...

  7. Screen多视窗远程控制管理服务

    Screen是一款由GNU开源计划开发的多视窗远程控制管理服务,简单来说就是为了解决上述情况中网络异常中断或同时控制多个远程窗口而设计的程序. Screen服务程序不仅能够解决上述问题,而且用户在使用 ...

  8. linux ubuntu下abaqus-6.14安装破解完全指南

    本人亲测可用 目录 安装前准备 安装过程 机器配置 腾讯云服务器 ubuntu server 16.10 1.首先要在服务器上安装gui及相关依赖 sudo apt-get install ubunt ...

  9. 转: iOS崩溃堆栈符号表使用与用途

    转:http://bugly.qq.com/blog/?p=119 iOS崩溃堆栈符号化,定位问题分分钟搞定! 2015.3.16 腾讯Bugly 微信分享   最近一段时间,在跟开发者沟通过程中,萝 ...

  10. Lidgren.Network – an introduction to networking in C# games

    Lidgren.Network – an introduction to networking in C# games http://genericgamedev.com/tutorials/lidg ...