android之動畫分析

android之Tween動畫分析

Android動畫有兩種:
1,Tween動畫,通過對 View 的內容進行一系列的圖形變換 (包括平移、縮放、旋轉、改變透明度)來實現動畫效果。動畫效果的定義可以採用XML來做也可以採用編碼來做;
2,Frame動畫,即順序播放事先做好的圖像,跟放膠片電影類似。 
(1)把準備好的圖片放進項目res/ drawable下。
(2)在項目的res目錄下創建文件夾anim,然後在anim文件夾下面定義動畫XML文件,文件名稱可以自定義。當然也可以採用編碼方式定義動畫效果(使用AnimationDrawable類)。
(3)爲View控件綁定動畫效果。調用代表動畫的AnimationDrawable的start()方法開始動畫。

定義動畫簡單2步驟:
1,res文件下建動畫文件anim,然後建動畫xml,比如scale.xml;
2,代碼直接調用xml佈局文件,形成動畫;

今天講下Tween的4種動畫用法:
1,漸變尺寸縮放效果動畫,如果用代碼定義動畫需要使用的類:ScaleAnimation
佈局代碼:
<span style="font-size:14px;"><!-- 縮放動畫 -->
    <scale
        android:duration="1000"
        android:fillAfter="false"
        android:fromXScale="0.0"
        android:fromYScale="0.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0" /></span>
說明:
duration: 動畫時長
fromXScale: 動畫起始X座標 
fromYScale: 動畫起始Y座標
toXScale:動畫結束X座標
toYScale:動畫結束Y座標
    0.0表示收縮到沒有,1.0表示正常無收縮
    值小於0表示收縮,大於1.0表示放大
pivotX: 動畫相對於物件的X座標的開始位置
pivotY: 動畫相對於物件的X座標的開始位置  這兩個座標可以理解成是一箇中心點,動畫的中心點
從0%-100%中取值 50%爲物件的X或Y方向座標上的中點位置 
fillAfter(布爾型)屬性當設置爲true,該動畫轉化在動畫結束後被應用

代碼調用佈局動畫:
<span style="font-size:14px;">// scale縮放動畫
		ImageView mImageView = (ImageView) findViewById(R.id.imageView);
		// 加載動畫
		Animation mAnimation = AnimationUtils.loadAnimation(this, R.anim.scale);
		// 執行動畫
		mImageView.startAnimation(mAnimation);</span>


2,漸變透明度動畫,如果用代碼定義動畫需要使用的類:AlphaAnimation
佈局代碼:
<span style="font-size:14px;">   <!-- 透明動畫 -->
    <alpha
        android:duration="1000"
        android:fromAlpha="1.0"
        android:toAlpha="0.6" /></span>
說明:
duration: 動畫時長
fromAlpha: 動畫起始透明度 
toAlpha: 動畫結束透明度
1.0表示無透明,0.0完全透明

代碼調用如上一樣,在此省略...


3,畫面移動動畫,如果用代碼定義動畫需要使用的類:TranslateAnimation
佈局代碼:
<span style="font-size:14px;">  <!-- 移動動畫 -->
    <translate
        android:duration="1000"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:repeatCount="1"
        android:toXDelta="120"
        android:toYDelta="120" /></span>
說明:
duration: 動畫時長
fromXDelta:動畫起始X座標
fromYDelta:  動畫起始Y座標
toXDelta:  動畫結束X座標
toYDelta:  動畫結束Y座標
repeatCount: 動畫重複次數 

代碼調用如上一樣,在此省略...


4,畫面移動動畫,如果用代碼定義動畫需要使用的類:
RotateAnimation
佈局代碼
     <rotate
        android:duration="1000"
        android:fromDegrees="0"
         android:toDegrees="360" 
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="1"
       />


說明:
duration: 動畫時長
fromDegress: 動畫起始角度
toDegress: 動畫結束角度
(負數fromDegrees——toDegrees正數:順時針旋轉)
(負數fromDegrees——toDegrees負數:逆時針旋轉)
(正數fromDegrees——toDegrees正數:順時針旋轉)
(正數fromDegrees——toDegrees負數:逆時針旋轉)  

pivotX:  動畫相對於物件的X座標
pivotY:  動畫相對於物件的Y座標
以上兩個屬性值 從0%-100%中取值,50%爲物件的X或Y方向座標上的中點位置
repeatCount: 動畫重複次數


代碼調用如上一樣,在此省略...

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