這是安卓中做動畫效果比較常用的類他繼承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...