translateAnimation
和 rotateAnimation
可以在 Android 的動畫系統(tǒng)中結(jié)合使用,以創(chuàng)建更復(fù)雜的動畫效果。以下是如何將它們結(jié)合使用的基本步驟:
創(chuàng)建動畫資源文件:
res/anim
目錄下創(chuàng)建新的 XML 文件,例如 combined_animation.xml
。<set>
、<alpha>
、<scale>
、<translate>
或 <rotate>
標(biāo)簽來指定。組合動畫:
<set>
標(biāo)簽內(nèi),你可以包含多個動畫,這些動畫將按照你設(shè)置的順序執(zhí)行。<set>
中先旋轉(zhuǎn)一個對象,然后平移它,最后再旋轉(zhuǎn)它回到原來的位置。應(yīng)用動畫到視圖:
View
類的 startAnimation()
方法來應(yīng)用這個組合動畫。下面是一個簡單的示例,展示了如何在 XML 文件中結(jié)合使用 translateAnimation
和 rotateAnimation
:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<!-- 第一個動畫:旋轉(zhuǎn) -->
<rotate
android:fromDegrees="0"
android:toDegrees="90"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000" />
<!-- 第二個動畫:平移 -->
<translate
android:fromXDelta="0"
android:toXDelta="100"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="2000" />
<!-- 第三個動畫(可選):再次旋轉(zhuǎn) -->
<rotate
android:fromDegrees="90"
android:toDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000" />
</set>
在這個示例中,一個對象首先會旋轉(zhuǎn) 90 度,然后向右平移 100 個單位,最后再旋轉(zhuǎn)回到原來的位置。每個動畫的持續(xù)時間都是 2000 毫秒(即 2 秒)。
要在代碼中應(yīng)用這個動畫,你可以這樣做:
// 獲取要應(yīng)用動畫的視圖
View myView = findViewById(R.id.my_view);
// 加載動畫資源
Animation animation = AnimationUtils.loadAnimation(this, R.anim.combined_animation);
// 開始動畫
myView.startAnimation(animation);