View Animation
您可以使用视图动画系统对视图执行补间动画。吐温动画计算与信息动画如起点,终点,尺寸,旋转和动画的其他共同的方面。
补间动画可以执行一系列的视图对象的内容进行简单的转换(位置,大小,旋转和透明度)的。所以,如果你有一个TextView对象,你可以移动,旋转,增长或缩小文本。如果它有一个背景图片,背景图像与文本转化一起。动画包提供的补间动画中使用的所有类。
动漫指令序列定义补间动画,通过XML或Android的代码中定义。正如定义布局,XML文件建议,因为它更可读,可重复使用,并且支持热插拔不是硬编码的动画。在下面的例子中,我们使用XML。 (要了解更多关于在应用程序代码中定义的,而不是XML的动画,指AnimationSet类和其他动画子类)。
动画指令定义要发生,何时发生,他们的转化,以及多久他们应该适用。转换可以连续或同时 - 例如,你可以有一个TextView移动内容由左到右,然后旋转180度,或者你可以有文字移动和同时转动。每个变换采用一组特异于该变换参数(起始大小和尺寸的变化结束的大小,起始角度和旋转结束角度,等等),并且还一组通用参数(例如,开始时间和持续时间) 。为了让几个转换同时发生,给他们相同的开始时间;以使它们的顺序,计算开始时间加上前述转化的持续时间。
动画XML文件属于你的Android项目的RES /动画/目录下。该文件必须有一个根元素:这将是单个<阿尔法>,<规模>,<翻译>,<旋转>,插元素,或<set>元素来装这些元素组(其中可能包括另一<设置>)。默认情况下,所有的动画指令同时适用。以使它们按顺序发生,必须指定startOffset属性,如下面的例子中
从ApiDemos之一以下XML是用来拉伸,然后同时旋转,旋转视图对象。
<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)在左上角,并且随着你去向下和向右。
ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage); Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump); spaceshipImage.startAnimation(hyperspaceJumpAnimation);作为一种替代startAnimation(),您可以定义一个起始时间与Animation.setStartTime()动画,然后将动画分配与View.setAnimation视图()。