动画效果编程基础:
1.动画类型
在android中的动画由四种类型组成:
(1)XML中?
(2)JavaCode中?
2.动画效果的定义方法
android动画效果,可以定义在xml文件,也可以定义在java代码中,实现效果是一样的。
(1)在xml中使用方法
① 打开Eclipse,新建Android工程
② 在res目录中新建anim文件夹
③ 在anim目录中新建一个myanim.xml(注意文件名小写)
④ 加入XML的动画代码(具体内容看后面)
<?xml version= "1.0" encoding= "utf-8" ?> |
< set xmlns:android= "http://schemas.android.com/apk/res/android" > |
?? <alpha/> |
?? <scale/> |
?? <translate/> |
?? <rotate/> |
</ set > |
(2)java代码中定义方法
//在代码中定义 动画实例对象 |
private Animation myAnimation_Alpha; |
private Animation myAnimation_Scale; |
private Animation myAnimation_Translate; |
private Animation myAnimation_Rotate; |
???? ? |
? //根据各自的构造方法来初始化一个实例对象 |
myAnimation_Alpha= new AlphaAnimation(0.1f, 1.0f); |
? |
myAnimation_Scale = new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); |
? |
myAnimation_Translate= new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f); |
? |
myAnimation_Rotate= new RotateAnimation(0.0f, +350.0f,? Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f); |
3.使用动画效果
(1)使用Xml中动画效果
public static Animation loadAnimation (Context context, int id) |
//第一个参数Context为程序的上下文??? |
//第二个参数id为动画XML文件的引用 |
//例子: |
myAnimation= AnimationUtils.loadAnimation( this ,R.anim.my_action); |
//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件 |
(2)如果是代码中定义动画效果,就直接调用就行
使用从View父类继承过来的方法startAnimation()来为View或是子类View等等添加一个动画效果
public void startAnimation (Animation animation) |
?
附录:
1.XML定义方法中各个参数属性:
Tween Animation共同的节点属性
表一 | ||
属性[类型] | 功能 | |
Duration[long] | 属性为动画持续时间 | 时间以毫秒为单位 |
fillAfter [boolean] | 当设置为true ,该动画转化在动画结束后被应用 | |
fillBefore[boolean] | 当设置为true ,该动画转化在动画开始前被应用 | |
interpolator | 指定一个动画的插入器 | 有一些常见的插入器 accelerate_decelerate_interpolator 加速-减速 动画插入器 accelerate_interpolator 加速-动画插入器 decelerate_interpolator 减速- 动画插入器 其他的属于特定的动画效果 |
repeatCount[int] | 动画的重复次数 | |
RepeatMode[int] | 定义重复的行为 | 1:重新开始? 2:plays backward |
startOffset[long] | 动画之间的时间间隔,从上次动画停多少时间开始执行下个动画 | |
zAdjustment[int] | 定义动画的Z Order的改变 | 0:保持Z Order不变 1:保持在最上层 -1:保持在最下层 |
4种类型各自特有的节点元素:
<alpha>
表二 | ||
XML节点 | 功能说明 | |
alpha | 渐变透明度动画效果 | |
<alpha android:fromAlpha=”0.1″ android:toAlpha=”1.0″ android:duration=”3000″ /> | ||
fromAlpha | 属性为动画起始时透明度 | 0.0表示完全透明 1.0表示完全不透明 以上值取0.0-1.0之间的float数据类型的数字 |
toAlpha | 属性为动画结束时透明度 |
<scale>
表三 | ||
scale | 渐变尺寸伸缩动画效果 | |
<scale android:interpolator= [email protected]:anim/accelerate_decelerate_interpolator” android:fromXScale=”0.0″ android:toXScale=”1.4″ android:fromYScale=”0.0″ android:toYScale=”1.4″ android:pivotX=”50%” android:pivotY=”50%” android:fillAfter=”false” android:startOffset=“700” android:duration=”700″ android:repeatCount=”10″ /> | ||
fromXScale[float] fromYScale[float] | 为动画起始时,X、Y坐标上的伸缩尺寸 | 0.0表示收缩到没有 1.0表示正常无伸缩 值小于1.0表示收缩 值大于1.0表示放大 |
toXScale [float] toYScale[float] | 为动画结束时,X、Y坐标上的伸缩尺寸 | |
pivotX[float] pivotY[float] | 为动画相对于物件的X、Y坐标的开始位置 | 属性值说明:从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置 |
<translate>
表四 | ||
translate | 画面转换位置移动动画效果 | |
<translate android:fromXDelta=”30″ android:toXDelta=”-80″ android:fromYDelta=”30″ android:toYDelta=”300″ android:duration=”2000″ /> | ||
fromXDelta toXDelta | 为动画、结束起始时 X坐标上的位置 | |
fromYDelta toYDelta | 为动画、结束起始时 Y坐标上的位置 |
<rotate>
表五 | ||
rotate | 画面转移旋转动画效果 | |
<rotate android:[email protected]:anim/accelerate_decelerate_interpolator” android:fromDegrees=”0″ android:toDegrees=”+350″ android:pivotX=”50%” android:pivotY=”50%” android:duration=”3000″ /> | ||
fromDegrees | 为动画起始时物件的角度 | 说明 当角度为负数——表示逆时针旋转 当角度为正数——表示顺时针旋转 (负数from——to正数:顺时针旋转) (负数from——to负数:逆时针旋转) (正数from——to正数:顺时针旋转) (正数from——to负数:逆时针旋转) |
toDegrees | 属性为动画结束时物件旋转的角度 可以大于360度 | |
pivotX pivotY | 为动画相对于物件的X、Y坐标的开始位 | 说明:以上两个属性值 从0%-100%中取值 50%为物件的X或Y方向坐标上的中点位置 |
2.Android SDK动画类 Animation
Tween Animation由4种类型:alpha、scale、translate、roate,在Android SDK中提供了相应的类,Animation类派生出了AlphaAnimation、ScaleAnimation、TranslateAnimation、RotateAnimation分别实现了平移、旋转、改变 Alpha 值等动画,每个子类都在父类的基础上增加了各自独有的属性。
然后可以调用里面的函数设置相应的参数...