Android動畫效果 translate、scale、alpha、rotate

Android的動畫效果分爲兩種,一種是tweened animation(補間動畫),第二種是frame by frame animation。 android

通常咱們用的是第一種。補間動畫又分爲AlphaAnimation,透明度轉換 RotateAnimation,旋轉轉換 ScaleAnimation,縮放轉換 TranslateAnimation 位置轉換(移動)。
動畫效果在anim目錄下的xml文件中定義,在程序中用AnimationUtils.loadAnimation(Context context,int ResourcesId)載入成Animation對象,在須要顯示動畫效果時,執行須要動畫的View的startAnimation方法,傳入Animation,便可。切換Activity也能夠應用動畫效果,在startActivity方法後,執行overridePendingTransition方法,兩個參數分別是切換前的動畫效果,切換後的動畫效果,下面的例子中傳入的是兩個alpha動畫,以實現切換Activity時淡出淡入,漸隱漸現效果。 ide

1.淡出效果 動畫

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="500"
/>
</set> spa

<!--
fromAlpha:開始時透明度
toAlpha:結束時透明度
duration:動畫持續時間
-->
rest

 2.淡入效果 xml

<?xml version="1.0" encoding="utf-8"?> 對象

<set xmlns:android="http://schemas.android.com/apk/res/android"> utf-8

<alpha android:fromAlpha="0.0" animation

  android:toAlpha="1.0"  it

    android:duration="500" />

</set>

 <?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

3.旋轉效果:

<rotate

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:fromDegrees="300" a

ndroid:toDegrees="-360"

android:pivotX="10%"

android:pivotY="100%"

android:duration="10000" />

 </set>

<!-- fromDegrees開始時的角度

toDegrees動畫結束時角度

pivotX,pivotY不太清楚,看效果應該是定義旋轉的圓心的-->

4.縮放效果:

<set xmlns:android="http://schemas.android.com/apk/res/android">

<scale  

android:interpolator= "@android:anim/decelerate_interpolator" 

android:fromXScale="0.0" a

ndroid:toXScale="1.5" 

android:fromYScale="0.0"  

android:toYScale="1.5"  

android:pivotX="50%"  

android:pivotY="50%"  

android:startOffset="0"  

android:duration="10000" 

android:repeatCount="1" 

android:repeatMode="reverse" />

</set>

<!-- interpolator指定動畫插入器,常見的有加速減速插入器accelerate_decelerate_interpolator,加速插入器accelerate_interpolator,減速插入器decelerate_interpolator。 fromXScale,fromYScale,動畫開始前X,Y的縮放,0.0爲不顯示,1.0爲正常大小 toXScale,toYScale,動畫最終縮放的倍數,1.0爲正常大小,大於1.0放大 pivotX,pivotY動畫起始位置,相對於屏幕的百分比,兩個都爲50%表示動畫從屏幕中間開始 startOffset,動畫屢次執行的間隔時間,若是隻執行一次,執行前會暫停這段時間,單位毫秒 duration,一次動畫效果消耗的時間,單位毫秒,值越小動畫速度越快 repeatCount,動畫重複的計數,動畫將會執行該值+1次 repeatMode,動畫重複的模式,reverse爲反向,當第偶次執行時,動畫方向會相反。restart爲從新執行,方向不變 -->

 5.移動效果:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

 <translate

android:fromXDelta="320" a

ndroid:toXDelta="0"

android:fromYDelta="480"

android:toYDelta="0"

android:duration="10000" />

</set>

<!-- fromXDelta,fromYDelta起始時X,Y座標,屏幕右下角的座標是X:320,Y:480 toXDelta,toYDelta動畫結束時X,Y的座標 -->

相關文章
相關標籤/搜索