android动画有补间动画也有属性动画,还有布局动画等。今天就先从简单的四种基本补间动画说起。
补间动画有:平移,缩放,旋转,透明。使用方式有两种:xml和java代码。
四种动画的共同属性说明:
android:fillAfter 表示动画结束后是否停留在最后一帧,即停在结束位置;
android:duration表示动画的持续时间;
android:interpolator表示动画的运行规律(插值器),比如先快后慢或者先慢后快等;
android:repeatCount 表示重复次数,默认值是0,代表重复1次;如果值是repeatCount=n代表重复 n+1次;值为-1或者infinite时,表示补间动画永不停止;
android:repeatMode 设置重复的模式,默认是restart,当repeatCount的值大于0或者为-1或infinite时才有效:
1.如果是:restart,表示每次执行完都会从头开始;
2.如果是:reverse,表示第一次从头开始,第二次反过来,第三次从头开始,第四次反过来,即偶数次是反着的;
3.举例说明,从位置A平移到B:
a.如果是restart,那么每次都是A-B,瞬间回到A然后又A-B,不断重复;
b.如果是reverse,那么第一次是A-B,第二次是B-A,第三次是A-B,第四次是B-A,这样循环下去,结果是就是来回移动了;
四种补间动画单独说明:
一.平移动画TranslateAnimation
1.XML实现方式(res/anim,没有此文件夹自己建立):
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXDelta="0"
android:fromYDelta="0"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:toXDelta="50%p"/>
使用:
Animation tran = AnimationUtils.loadAnimation(this,R.anim.translate);
translate.startAnimation(tran);
属性说明:
android:fromXDelta,平移的起点x方向坐标(android:toXDelta和Y方向的同理):
1.如果值是数值类型,即20或者25.0之类的,譬如50表示以当前View左上角坐标加50px为初始点;
2.如果值是百分比类型,即20%或者50%之类的,50%表示以当前View的左上角加上当前View宽高的50%做为初始点;
3.如果是父值的类型,即-100%p或者100%p之类的,50%p表示以当前View的左上角加上父控件宽高的50%做为初始点;
2.代码实现方式:
Animation tran1 = new TranslateAnimation(Animation.RELATIVE_TO_PARENT,0,Animation.RELATIVE_TO_PARENT,1,Animation.RELATIVE_TO_PARENT,0,Animation.RELATIVE_TO_PARENT,