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

動畫類型

Androidanimation由四種類型組成

XML
alpha 漸變透明度動畫效果
scale 漸變尺寸伸縮動畫效果
translate 畫面轉換位置移動動畫效果
rotate 畫面轉移旋轉動畫效果


JavaCode
AlphaAnimation 漸變透明度動畫效果
ScaleAnimation 漸變尺寸伸縮動畫效果
TranslateAnimation 畫面轉換位置移動動畫效果
RotateAnimation 畫面轉移旋轉動畫效果

Android動畫模式

Animation主要有兩種動畫模式

一種是tweened animation(漸變動畫)
XML JavaCode
alpha AlphaAnimation
scale ScaleAnimation


一種是frame by frame(畫面轉換動畫)

XML中 JavaCode
translate TranslateAnimation
rotate RotateAnimation

Android動畫解析

alpha xml 淡出效果


<?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> 
<!--  
    fromAlpha:開始時透明度 
    toAlpha: 結束時透明度 
    duration:動畫持續時間 -->

alpha xml 淡入效果

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<alpha 
    android:fromAlpha="0.0"  
    android:toAlpha="1.0"  
    android:duration="500"  /> 
</set> 
<!--  
    fromAlpha:開始時透明度 
    toAlpha: 結束時透明度 
    duration:動畫持續時間 -->


rotate.xml 旋轉效果: 
<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate 										
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
	android:fromDegrees="300" 
	android:toDegrees="-360" 
	android:pivotX="10%" 
	android:pivotY="100%" 
	android:duration="10000" /> 
</set> 
<!--  
  fromDegrees  	動畫開始時的角度 
  toDegrees    	動畫結束時物件的旋轉角度,正代表順時針   
  pivotX  	屬性爲動畫相對於物件的X座標的開始位置
  pivotY 	屬性爲動畫相對於物件的Y座標的開始位置    --> 


scale.xml 縮放效果: 

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<scale   
	android:interpolator= "@android:anim/decelerate_interpolator"   	
	android:fromXScale="0.0"   
	android: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> 

<!--  
fromXDelta,fromYDelta   	起始時X,Y座標,屏幕右下角的座標是X:320,Y:480 
toXDelta, toYDelta     	動畫結束時X,Y的座標 --> <!--  
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爲重新執行,方向不變 -->




translate.xml 移動效果: 
<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate 
	android:fromXDelta="320" 
	android:toXDelta="0" 
	android:fromYDelta="480" 
	android:toYDelta="0" 
	android:duration="10000" /> 
</set> 
<!--  
fromXDelta,fromYDelta   起始時X,Y座標,屏幕右下角的座標是X:320,Y:480 
toXDelta, toYDelta     動畫結束時X,Y的座標 --> 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章