自定義控制項之飄落動畫

2021-08-03 08:12:09 字數 2675 閱讀 9103

不少人會遇到飄落動畫的需求,在這裡我大致寫了乙個,但是不可能滿足所有需求,仍有很多地方需要修改,我直接貼**,效果請自行黏貼到demo中嘗試

public class flowerview extends view 

private boolean

isdrawing = false;

boolean

hide_mode = false;

private boolean

fileafter = false;

//是否保留最後狀態

public void

setfileafter(boolean fileafter)

//是否漸隱

public void

sethide_mode(boolean hide_mode)

//設定漂浮物

public void

setdrawables(int drawables)

//設定漂浮物密度

public void

setdrawablesize(int drawablesize)

/*** 設定畫布大小**

@param

pw 寬度

*@param

ph 高度

*/private void

setwh(int pw, int ph) ;

offsety = new integer;

} @override

protected void

onsizechanged(int w, int h, int oldw, int oldh)

public

flowerview(context context)

public

flowerview(context context, attributeset attrs, int defstyle)

public

flowerview(context context, attributeset attrs)

private void

init() ;

if (flowers == null)

flowers = new myflower[drawablesize];

loadflower();

addrect();

} @override

protected void

ondraw(canvas canvas)

for (int i = 0

; i < flowers.length

; i++)

rect.t = t;

if (rect.y >= mh)

if (rect.x >= mw || rect.x

< -20)

flowers[i] = rect;

} postinvalidatedelayed(10);

if (hide_mode) else

}} else

rect.t = t;

if (rect.y >= mh)

if (rect.x >= mw || rect.x

< -20)

flowers[i] = rect;

} }}}

public void

loadflower()

flos = null;

} flos = new bitmap[drawables.length];

for (int i = 0

; i < drawables.length

; i++)

}public void

addrect()

}/**

* 開始動畫

*/public void

start()

alalpha = 300

;starttime = system.currenttimemillis();

isdrawing = true;

postinvalidatedelayed(100);

} class myflower else if (aa <= 0.2) else

this.alpha = alalpha

;this.t = -1

;this.g = offsety[newrandom.nextint(4)];

this.h = offsetx[newrandom.nextint(7)];

} public

myflower(bitmap bi)

}}

有關初始化和呼叫的**如下

private void 

initflower() );

} public void

startflow(view v)

就會有飄落動畫的出現,設定密度

flower.setdrawablesize(50);

一定要設定需要飄落的

flower.setdrawables(new int);
呼叫start()檢視效果

Android自定義控制項之自定義組合控制項(三)

前兩篇介紹了自定義控制項的基礎原理android自定義控制項之基本原理 一 自定義屬性android自定義控制項之自定義屬性 二 今天重點介紹一下如何通過自定義組合控制項來提高布局的復用,降低開發成本,以及維護成本。1.第一種方式 直接在每個xml布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...

Android自定義控制項之自定義組合控制項

前兩篇介紹了自定義控制項的基礎原理android自定義控制項之基本原理 一 自定義屬性android自定義控制項之自定義屬性 二 今天重點介紹一下如何通過自定義組合控制項來提高布局的復用,降低開發成本,以及維護成本。1.第一種方式 直接在每個xml布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...

自定義View 聚焦動畫控制項

我盡量不打錯別字,用詞準確,不造成閱讀障礙。這個自定義view是很簡單的乙個,效果是在拍攝時的對焦動畫,在自定義su ceview中使用這個控制項就好了。效果如下 初始化 private void init private void setmaincolor private void reset o...