您的位置:首页 > 移动开发 > Android开发

Android中Animation 详细分类

2015-03-27 19:23 176 查看

Android中Animation 详细分类

1.渐变动画

1.Alpha:透明度改变效果
2.Scale:缩放效果
3.Rotate:旋转效果
4.Translate:移动效果


2.设置动画有两种方式

xml方式添加动画

1.Alpha(透明度)

xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
    android:duration="1000"
    android:fromAlpha="1.0"
    android:toAlpha="0"
    android:fillAfter="true"
    android:startOffset="400"
    android:repeatCount="3"
    />
</set>
//通过AnimationUtils.loadAnimation(int i)方法加载xml中的动画
animation1 = AnimationUtils.loadAnimation(this, R.anim.alphaxml);


java

//透明度从1~0
animation1 = new AlphaAnimation(1, 0);
//动画时长1000毫秒
animation1.setDuration(1000);
//动画结束时停留在动画结束的时刻
animation1.setFillAfter(true);
//动画延迟400毫秒开始
animation1.setStartOffset(400);
//重复3次动画
animation1.setRepeatCount(3);


2.Scale(缩放)

xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
    android:fromXScale="1"
    android:fromYScale="1"
    android:toXScale="0"
    android:toYScale="1"
    android:duration="1000"
    android:repeatCount="3"
    android:fillAfter="true"
    android:pivotY="50%"
    android:pivotX="50%"
    />
</set>


java

/**
* ( float fromX, float toX, float fromY, float toY, float pivotX, float pivotY)
*
* float fromX 动画起始时 X坐标上的伸缩尺寸
* float toX 动画结束时 X坐标上的伸缩尺寸
* float fromY 动画起始时Y坐标上的伸缩尺寸
* float toY 动画结束时Y坐标上的伸缩尺寸
* float pivotXValue 动画相对于物件的X坐标的开始位置
* float pivotYValue 动画相对于物件的Y坐标的开始位置
*/
animation1 = new ScaleAnimation(1f, 0f, 1f, 1f, 0.5f, 0.5f);
//动画时长1000毫秒
animation1.setDuration(1000);
//动画结束时停留在动画结束的时刻
animation1.setFillAfter(true);
//重复3次动画
animation1.setRepeatCount(3);


3.rotate(旋转)

xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
    android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="1000"
    android:repeatCount="3"
    />
</set>


java

/**
 * (float fromDegrees, float toDegrees, float pivotX, float pivotY)
 *
 * float fromDegrees动画开始的度数
 * float toDegrees 动画结束的度数
 * float pivotX 动画围绕的旋转的中心x
 * float pivotY 动画围绕的旋转的中心y
 */
animation1 = new RotateAnimation(0f, 360f, 0f, 0f);
animation1.setDuration(1000);
animation1.setFillAfter(false);
animation1.setRepeatCount(3);


4.translate(移动)

xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
    android:fromXDelta="-500"
    android:toXDelta="500"
    android:fromYDelta="-200"
    android:toYDelta="200"
    android:duration="1500"
    android:fillAfter="false"
    android:repeatCount="3"
    />
</set>


java

/**
 * TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)
 *
 * float fromXDelta 动画开始X轴上的位置
 * float toXDelta 动画结束在X轴上的位置
 * float fromYDelta 动画开始Y轴上的位置
 * float toYDelta 动画结束在Y轴上的位置
 */
animation1=new TranslateAnimation(-500f,500f,-200,200);
animation1.setDuration(1500);
animation1.setFillAfter(false);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: