Android動畫複習:包括縮放動畫、平移動畫、旋轉動畫和透明度動畫

來源:互聯網
上載者:User

現在是下午,我還在上班,工作都完成了,正在測試,突然感到很迷惘,工作一年了,仍然還是老樣子,想到這些不由得倒吸一口冷汗。所以抓緊時間來看看我的部落格,更新一下內容,有時候不逼自己一把,永遠都不知道自己的極限是什麼。 今天就來說說很基礎很基礎的知識:動畫。動畫主要分為四種。 1.縮放動畫(ScaleAnimation); 2.平移動畫(TranslateAnimation); 3.旋轉動畫(RotateAnimation); 4.透明度(AlphaAnimation); 其實還有一個,叫動畫集合,現在這裡先放一放。 接下來,我先講講在java代碼裡面怎麼去實現動畫的效果。 首先看到縮放動畫:

      (ImageView iv) {        ScaleAnimation animation;        animation =  ScaleAnimation(,,,,Animation.RELATIVE_TO_SELF,                f, Animation.RELATIVE_TO_SELF, f);        animation.setDuration();        animation.setFillAfter();        iv.startAnimation(animation);    }
看到代碼裡面,首先這是一個私人的方法,傳了一個ImageView對象,所以很明顯,這個是實現圖片的縮放效果的。重點來看ScaleAnimation的三個構造方法:
1.ScaleAnimation(fromX, toX, fromY, toY);2.ScaleAnimation(fromX, toX, fromY, toY, pivotX, pivotY);3.ScaleAnimation(fromX, toX, fromY, toY, pivotXType, pivotXValue, pivotYType, pivotYValue)
第一個其實很明顯,分別是從水平縮放和垂直縮放的角度,預設的原點是當前ImageView控制項的左上方。第二個比一個多了兩個參數,這兩個參數就是可以讓我們定義原點的。第三個好像更豐富了,從單詞上也不難理解。前四個都類似,重點看看後面的四個,首先是 pivotXType,這個是指原點相對x的類型,常用的是Animation.RELATIVE_TO_SELF,pivotXValue是指原點的值,一般的,0.5就是指原點了,後面的兩個參數依次類推。所以,一個縮放動畫就搞定了。接下來,再來看看平移動畫:
      (ImageView iv) {        TranslateAnimation animation;        animation =  TranslateAnimation(, , Animation.RELATIVE_TO_SELF,                Animation.RELATIVE_TO_SELF);        animation.setDuration();        animation.setFillAfter();        iv.startAnimation(animation);    }
同樣的,我們來看看它的構造方法。
1.TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta);2.TranslateAnimation(fromXType, fromXValue, toXType, toXValue, fromYType, fromYValue, toYType, toYValue);

我們來一一分析一下這個參數的具體意義:

float fromXDelta:這個參數表示動畫開始的點離當前View X座標上的差值;

float toXDelta, 這個參數表示動畫結束的點離當前View X座標上的差值; 

float toXDelta, 這個參數表示動畫結束的點離當前View X座標上的差值; 

float toYDelta)這個參數表示動畫開始的點離當前View Y座標上的差值; 

如果view在A(x,y)點 那麼動畫就是從B點(x+fromXDelta, y+fromYDelta)點移動到C 點(x+toXDelta,y+toYDelta)點.

第二個構造方法

fromXType:第一個參數是x軸方向的值的參照(Animation.ABSOLUTE,Animation.RELATIVE_TO_SELF,or Animation.RELATIVE_TO_PARENT);

fromXValue:第二個參數是第一個參數類型的起始值;

toXType,toXValue:第三個參數與第四個參數是x軸方向的終點參照與對應值;

後面四個參數就不用解釋了。如果全部選擇Animation.ABSOLUTE,其實就是第二個建構函式。

  以x軸為例介紹參照與對應值的關係:  如果選擇參照為Animation.ABSOLUTE,那麼對應的值應該是具體的座標值,比如100到300,指絕對的螢幕像素單位  如果選擇參照為Animation.RELATIVE_TO_SELF或者 Animation.RELATIVE_TO_PARENT指的是相對於自身或父控制項,對應值應該理解為相對於自身或者父控制項的幾倍或百分之多少。多試參數就明白了。

我們再來看看旋轉動畫:

      (ImageView iv) {        RotateAnimation animation;        animation =  RotateAnimation(, , Animation.RELATIVE_TO_SELF,                f, Animation.RELATIVE_TO_SELF, f);        animation.setDuration();        animation.setFillAfter();        iv.startAnimation(animation);    }

首先來分析一下它的構造方法:

1.RotateAnimation(fromDegrees, toDegrees);2.RotateAnimation(fromDegrees, toDegrees, pivotX, pivotY);3.RotateAnimation(fromDegrees, toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue)。

這裡面:

fromDegrees是指從什麼角度開始,toDegrees是指在什麼角度結束。第一個參數的原點是控制項的左上方。

剩下的上面的縮放動畫已經涉及過,就不在贅訴了。

最後看看透明度動畫:

      (ImageView iv) {        AlphaAnimation animation;        animation =  AlphaAnimation(, );        animation.setDuration();        animation.setFillAfter();        iv.startAnimation(animation);    }

這一個比較簡單,只有一個重要的構造方法。

這裡也很明顯,就是從什麼狀態到什麼狀態,最小的是-1最大的是1

好了,截止目前,這裡java代碼實現控制項動畫的效果就到此結束了,下一次我們聊聊在xml裡面怎麼設定動畫,並且在java代碼裡怎麼引用這些動畫。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.