Android開發之動畫實現方法

來源:互聯網
上載者:User

Android開發之動畫實現方法

   本文執行個體講述了Android開發之動畫實現方法。分享給大家供大家參考。具體分析如下:

  動畫分為三種:

  逐幀動畫、布局動畫和控制項動畫

  控制項動畫實現

  通過重寫Animation的 applyTransformation (float interpolatedTime, Transformation t)函數來實現自訂動畫效果,另外一般也會實現 initialize (int width, int height, int parentWidth, int parentHeight)函數,這是一個回呼函數告訴Animation目標View的大小參數,在這裡可以初始化一些相關的參數,例如設定動畫期間、設定Interpolator、設定動畫的參考點等。

  OPhone在繪製動畫的過程中會反覆的調用applyTransformation 函數,每次調用參數interpolatedTime值都會變化,該參數從0漸層為1,當該參數為1時表明動畫結束。通過參數Transformation 來擷取變換的矩陣(matrix),通過改變矩陣就可以實現各種複雜的效果。

  下面舉例說明一個控制項動畫:

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Animation anim = new Animation() {

@Override

protected void applyTransformation(float interpolatedTime, Transformation t) {

if (interpolatedTime == 1) {

v.setVisibility(View.GONE);

}

else {

v.getLayoutParams().height = initialHeight - (int)(initialHeight * interpolatedTime);

v.requestLayout();

}

}

@Override

public boolean willChangeBounds() {

return true;

}

};

  例子中,一個view的高度逐漸由原來的高度變為0。當動畫結束之後,view消失。

  希望本文所述對大家的Android程式設計有所協助。

聯繫我們

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