一、背景
Android中的动画效果是一个非常强大的功能,在使用过程中极大地提高的用户的视觉以及操作体验,Animations是一个实现Android UI 界面动画效果的API,Animation提供了一系列最基本的动画效果,可以包含旋转,缩放,淡入淡出等等,而Android中大多数控件都可以应用到这些动画。
二、分类
Android的动画大致分为补间动画(Tween Animation)、帧动画((Frame Animation)以及属性动画(PropertyAnimation)
l 补间动画
a. 渐变动画支持四种类型:平移(Translate)、旋转(Rotate)、缩放(Scale)、不透明度(Alpha)。
b. 只是显示的位置变动,View的实际位置未改变,表现为View移动到其他地方,点击事件仍在原处才能响应。
c. 组合使用步骤较复杂。
d. ViewAnimation 也是指此动画。
l 帧动画(FrameAnimation)
a. 用于生成连续的Gif效果图。
b.DrawableAnimation也是指此动画。
l 属性动画(Property Animation)
a. 支持对所有View能更新的属性的动画(需要属性的setXxx()和getXxx())。
b. 更改的是View实际的属性,所以不会影响其在动画执行后所在位置的正常使用。
c.Android3.0 (API11)及以后出现的功能,3.0之前的版本可使用github第三方开源库nineoldandroids.jar进行支持。
三、位移动画TranslateAnimation
Translate动画非常好理解,就是定义一个开始的位置和一个结束位置,定义移动时间,然后就能自动产生移动动画。Android的translate移动方向有 横向(X) 竖向(Y), 左右滑动使用了横向移动效果。
TranslateAnimation作为Android JDK提供给开发者的API,共有三个构造函数分别是:
a. TranslateAnimation(Contextcontext,AttributeSet attrs) , 最基础的构造方法基本不用
b. TranslateAnimation(float fromXDelta, float toXDelta,float fromYDelta, float toYDelta)这是最常用也是相对简单的一个方法,其中参数代表的内容分别为:
float fromXDelta:动画在X轴上的相对起始位置;
float toXDelta:动画在X轴上的相对结束位置;
float fromYDelta:动画在Y轴上的相对起始位置;
float toYDelta):动画在X轴上的相对结束位置;
举例:如果view在A(x,y)点那么动画就是从B点(x+fromXDelta, y+fromYDelta)点移动到C点