动画和图形——View Animation
来源:互联网 发布:温湿度监测软件 编辑:程序博客网 时间:2024/06/07 21:58
我们使用view animation系统表示view视图的补间动画。补间动画计算动画信息,比如开始点,结束点,大小,旋转度和其他与动画相关的信息。
一个补间动画可以表示一个View对象内容的一系列简单的变化(位置,大小,旋转和透明)。所以,如果有一个TextView对象,我们可以移动,旋转,伸缩这个text。如果有背景图片,背景图片可以随着text一起变化。animation包提供了补间动画使用的所有类。
一系列animation命令,不管是XML还是代码定义了补间动画。像定义一个layout,推荐使用XML文件定义view animation。因为这样比硬编码可读性和可复用性更强。在下面的例子中,使用了XML。更多关于硬编码的方法,参考AnimationSet类和Animation子类。
animation说明定义了我们想要的变化,变化的时间,持续时间。变化可以是连续性的,同时的——例如,可以使一个textView从左向右移动,然后旋转180度,也可以是移动和旋转同时进行。每一次变化需要为其指定一系列参数(为尺寸变化指定开始尺寸,结束尺寸,为旋转指定开始角度和结束角度等),同时还需要指定其他的通用参数(比如开始时间和持续时长)。为了使多个变化同时进行,需要指定相同的开始时间;要使它们依次进行,需要计算开始时间加上先前变化的持续时间。
animation XML文件保存在res/anim/文件夹中,这个文件必须有一个根元素:它们可以是<alpha>,<scale>,<translate>,<rotate>插值元素或者包括一组这些元素的<set>标签(也可以包含在另一个<set>标签里)。缺省状态下,所有的animation命令同时开始,要使它们一次进行,需要指定startOffset属性,如下例所示。
下面的这个XML文件取自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>
屏幕坐标轴的原点是屏幕的左上角顶点,并且往下和往右为正向。
pivotX值表示对于对象自己或父控件的相对性。“50”表示相对于父控件50%,"50%"表示相对自己50%。
插值器同前一篇中所讲的插值器内容。
下面的代码段告诉我们如何使用保存在res/anim/文件夹中的hyperspace_jump.xml。
ImageView spaceshipImage = (ImageView)findViewById(R.id.spaceshipImage);Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);spaceshipImage.startAnimation(hyperspaceJumpAnimation);
我们可以用Animation.setStartTime()指定一个开始时间然后再使用View.setAnimation()把该animation分配给View对象。
更多XML相关语法,查看Animation Resources.
Note:不管如何移动或改变视图大小,包含这个动画的View对象的边界不会自动变化来适应它。即便如此,动画仍可以绘制在视图的边界外而不会切断。而超过父控件时将会被切断。
- 动画和图形——View Animation
- 动画和图形——Property Animation
- 动画——视图动画(View Animation)
- 动画——View Animation,Drawable Animation,Property Animation,LayoutTransition
- View Animation——视图动画
- 基础篇-动画机制—View Animation
- android 动画 ——视图动画(View Animation)
- API Guides (Anroid 7.1.1) Animation and Graphics Overview——动画和图形概述
- Android 的动画 I-基础知识和View Animation&Drawable Animation
- android animation——view进入退出动画
- Android API Guide for Animation and Graphics(五)—— 动画与图形(画布和可绘制对象)
- android动画 -- view Animation
- Android:View Animation 动画
- android动画之帧动画(drawable animation)和补间动画(view animation)
- animation—动画/停止动画
- 动画——animation
- Animation——动画
- Android Animation——view animation
- Left Join...ON与Where
- 电影之记忆3(铁拳男人)
- android 1.6中LinearLayout getBaseline函数的一个bug
- 文件,文件夹问题
- CentOS上搭建ffmpeg
- 动画和图形——View Animation
- SQL Server 2008 Express 安装或卸载时提示“重启计算机失败"的解决办法
- 区分触摸屏种类的几种方法
- GL_错误
- Linux进程间通信
- 【珍藏】JAVA EE 热门精品资源集(88个)
- 关于FLASHBACK_ON列的RESTORE POINT ONLY状态
- Oracle归档模式
- HDU 1203 I NEED A OFFER!