Android補間動畫
阿新 • • 發佈:2018-12-12
下面是補間動畫的簡單使用,先看效果圖:
透明動畫 alpha:
<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:fromAlpha="1.0" android:toAlpha="0.1" android:duration="2000"/> <!-- 透明 --> <!-- fromAlpha :起始透明度 toAlpha:結束透明度 duration:動畫時間 -->
縮放動畫 scale:
<scale xmlns:android="http://schemas.android.com/apk/res/android" android:fromXScale="1.0" android:toXScale="0.1" android:fromYScale="1.0" android:toYScale="0.1" android:pivotX="50%" android:pivotY="50%" android:duration="2000"/> <!-- 縮放 --> <!-- fromXScale:沿著X軸縮放的起始比例 toXScale:沿著X軸縮放的結束比例 fromYScale:沿著Y軸縮放的起始比例 toYScale:沿著Y軸縮放的結束比例 圖片縮放的起始點X軸:pivotX 圖片縮放的起始點Y軸:pivotY 都設定為50%表示從圖片中心開始縮放 -->
位移動畫 translate:
<translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0" android:toXDelta="300" android:fromYDelta="0" android:toYDelta="300" android:duration="2000"/> <!-- 位移 --> <!-- fromXDelta:動畫起始位置的X座標 toXDelta:動畫起結束位置的X座標 fromYDelta:動畫起始位置的Y座標 toYDelta:動畫結束位置的Y座標 -->
旋轉動畫 rotate:
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:duration="1000"
android:repeatCount="-1"
android:repeatMode="restart"/>
<!-- 旋轉 -->
<!--
fromDegrees:旋轉的起始角度
toDegrees:旋轉的結束角度
repeatCount:旋轉的次數;預設值是0則旋轉1次;如果值是2則旋轉3次;值為-1或者infinite時,表示動畫永不停止
repeatMode:重複的模式;預設restart,意思是同一個方向旋轉。還可以設成reverse,第偶數次顯示動畫時會反方向進行。
-->
組合動畫 set:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="true" >
<scale
android:duration="2000"
android:fromXScale="2.0"
android:fromYScale="2.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.2"
android:toYScale="0.2" />
<rotate
android:duration="2000"
android:fromDegrees="180"
android:repeatCount="0"
android:repeatMode="reverse"
android:toDegrees="360" />
<translate
android:duration="2000"
android:fromXDelta="-300"
android:fromYDelta="-300"
android:toXDelta="300"
android:toYDelta="300" />
<alpha
android:duration="2000"
android:fromAlpha="0.5"
android:toAlpha="1.0" />
</set>
動畫效果就完成了,在 Activity 中啟動即可:
//透明
ll_button.getChildAt(0).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,
R.anim.alpha);
image.startAnimation(animation);
}
});
//縮放
ll_button.getChildAt(1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,
R.anim.scale);
image.startAnimation(animation);
}
});
//位移
ll_button.getChildAt(2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,
R.anim.translate);
image.startAnimation(animation);
}
});
//旋轉
ll_button.getChildAt(3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,
R.anim.rotate);
image.startAnimation(animation);
}
});
//組合
ll_button.getChildAt(4).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,
R.anim.set);
image.startAnimation(animation);
}
});
到這裡補間動畫的簡單使用就完成了。