關於TranslateAnimation幾個建構函式的理解

來源:互聯網
上載者:User
       在android動畫中,最常用的一個莫不是TranslateAnimation了,這個類主要負責實現控制項的動態位移,經常被用做指標的移動動畫。比如qq安卓用戶端的指標,如。

 
       關於TranslateAnimation幾個建構函式的參數意義,曾困惑我不少時間,參考官方文檔和網上的講解,通過實驗總結出一些自己的理解,如果有誤敬請指正。
       TranslateAnimation共有三個建構函式,分別是:

其中,我們最常用的是後兩個,現在主要想說明一下我對後兩個函數參數的理解。
        先說第二個建構函式:TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, floattoYDelta)。
        Delta,顧名思義表示的是一個後一個和前一個的差值。XDelta即表示在X方向上的差值,同理YDelta表示在Y方向的差值。若XDelta>0,則說明控制項向右側發生移動,否則向左側移動,Y軸方向是相同的道理。現在來說下各個參數的意思:
        fromXDelta:控制項的開始移動前的位置,為什麼是Delta呢?因為在此之前,該控制項可能已經發生過了位移,因此它已經偏離了控制項最初始的位置。因此採用了距離最初始位置的位移量。
        toXDelta:相同道理,想要移動的終點位置距離最初始位置的位移量。記住,一定不要混淆的是,不要把這個最初始位置當成是移動開始前控制項的位置,否則將會發生錯誤移動。
        後面兩個參數表示Y方向上的,和X方向上的同理。需要說明的是,這個是絕對位移量,是以像素為單位進行計算的。
        再來說說第三個建構函式。
        當X方向或者Y方向上的Type選擇為Animation.ABSOLUTE時候,表示為絕對像素,此時XValue和YValue參數的含義和第二個建構函式相同。
        而當X方向或者Y方向上的Type選擇為Animation.RELATIVE_TO_SELF或者 Animation.RELATIVE_TO_PARENT時候,則表示相位移量了,舉個例子來說,如果在X方向上選擇Animation.RELATIVE_TO_SELF,那麼當XValue=1.0f時,則位移量為一個自身寬度。如果在X方向上選擇Animation.RELATIVE_TO_PARENT時,則位移量為一個父控制項寬度。Y方向是相同的道理,只是把寬度換成了高度而已。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.