安卓學習筆記之動畫屬性

2021-09-01 07:56:56 字數 2340 閱讀 9418

這是安卓中做動畫效果比較常用的類他繼承valueanimator類。

1 .如果我們想實現讓控制項變透明再變回來的效果我們的**可以這樣寫:

objectanimator animator = objectanimator.offloat(控制項型別, "alpha", 1f, 0f, 1f);

animator.setduration(5000);

animator.start();

其中alpha表示透明屬性後面三個屬性是從有到無再到有從而達到動畫的效果。

2 .同理如果想讓控制項實現旋轉的效果的話**可以這樣寫

objectanimator animator = objectanimator.offloat(控制項型別, "rotation", 0f, 360f);

animator.setduration(5000);

animator.start();

其中rotation表示旋轉的屬性後面則表示旋轉的角度。

3.如果想要將控制項先向左移出螢幕,然後再移動回來,就可以這樣寫:

float curtranslationx = 控制項型別.gettranslationx();

objectanimator animator = objectanimator.offloat(控制項型別, "translationx", curtranslationx, -500f, curtranslationx);

animator.setduration(5000);

animator.start();

4.如果想實現放大的效果可以這樣寫;

objectanimator animator = objectanimator.offloat(控制項型別, "scaley", 1f, 3f, 1f);

animator.setduration(5000);

animator.start();

其中屬性為scaley後面數字表示從本身放大三倍再恢復本身。

這些動畫屬性值都是自定義的。關鍵是後面傳入的屬性值。通過傳入的值來給某個控制項做對應的變化效果。

5.如果想做一套整合的動畫效果**可以這樣寫

objectanimator movein = objectanimator.offloat(控制項型別, "translationx", -500f, 0f);

objectanimator rotate = objectanimator.offloat(控制項型別, "rotation", 0f, 360f);

objectanimator fadeinout = objectanimator.offloat(控制項型別, "alpha", 1f, 0f, 1f);

animatorset animset = new animatorset();

animset.play(rotate).with(fadeinout).after(movein);

animset.setduration(5000);

animset.start();

實現組合動畫功能主要需要借助animatorset這個類。該類下面有四個方法

after(animator anim) 將現有動畫插入到傳入的動畫之後執行

after(long delay) 將現有動畫延遲指定毫秒後執行

before(animator anim) 將現有動畫插入到傳入的動畫之前執行

with(animator anim) 將現有動畫和傳入的動畫同時執行

animset.play(rotate).with(fadeinout).after(movein);這句**的意思就是讓旋轉和透明度再平移之後發生。

我們希望可以監聽到動畫的各種事件,比如動畫何時開始,何時結束,然後在開始或者結束的時候去執行一些邏輯處理。這個功能是完全可以實現的,animator類當中提供了乙個addlistener()方法,這個方法接收乙個animatorlistener,我們只需要去實現這個animatorlistener就可以監聽動畫的各種事件了。

**如下:

anim.addlistener(new animatorlistener()

@override

public void onanimationrepeat(animator animation)

@override

public void onanimationend(animator animation)

@override

public void onanimationcancel(animator animation)

安卓屬性動畫的總結

做了乙個月的安卓屬性動畫,要過是對一張進行從一點緩緩展開,然後在上顯示數字,顯示一段時間之後數字消失,消失後也緊跟著緩緩消失的效果。剛開始用的canvas進行對畫實現動畫的效果,通過matrix來手動的調節放大 傾斜的效果近似的模擬展開的效果,後來發現如果用canvas.drawbitmap的方法會...

安卓動畫之逐幀動畫

安卓檢視控制項 view 使用方式分為兩種,一種是在res drawable 檔案目錄下建立xml檔案,其中使用的標籤為animation list,另一種方式為在 中動態設定。使用介紹 在使用逐幀動畫時,要預先準備好一組放進drawable資料夾內 3.1 xml方式 首先建立xml檔案,並設定資...

安卓控制項屬性動畫使用大全

首先寫乙個xml布局檔案,用於顯示效果,如下 然後在activity中抓取所有的按鈕 button alphabutton button findviewbyid r.id.alpha button rotatebutton button findviewbyid r.id.rotate butto...