package Ġcom . t ams ire e . rx ui . view . progress Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics .* Ċ import Ġandroid . graphics . drawable . Bitmap Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġcom . t ams ire e . rx kit . Rx Image Tool . dp 2 px Ċ import Ġcom . t ams ire e . rx ui . R Ċ import Ġjava . util .* Ċ Ċ class ĠT Orange Ju ice ( context : ĠContext ?, Ġattrs : ĠAttributeSet ?) Ġ: ĠView ( context , Ġattrs ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Left Margin : ĠInt ĊĠĠĠ Ġprivate Ġval Ġm Right Margin : ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ä¸Ń çŃī æĮ ¯ å¹ ħ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® ä¸Ń çŃī æĮ ¯ å¹ ħ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġamplitude ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ// Ġä¸Ń çŃī æĮ ¯ å¹ ħ å¤§å°ı ĊĠĠĠ Ġvar Ġmiddle Amp litude Ġ= ĠM ID DLE _ AMP LIT UDE ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ æĮ ¯ å¹ ħ å·® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® æĮ ¯ å¹ ħ å·® ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdis parity ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ// Ġ æĮ ¯ å¹ ħ å·® ĊĠĠĠ Ġvar Ġmp litude Dis parity Ġ= ĠAMP LIT UDE _ DIS PAR ITY ĊĊĠĠĠ Ġ// Ġ åı ¶ åŃĲ é£ ĺ åĬ¨ ä¸Ģä¸ª åĳ¨æľŁ æīĢ èĬ± çļĦæĹ¶éĹ´ ĊĠĠĠ Ġprivate Ġvar Ġm Leaf Float Time Ġ= ĠLE AF _ FLOAT _ TIME ĊĊĠĠĠ Ġ// Ġ åı ¶ åŃĲ æĹ ĭ è½¬ ä¸Ģ åĳ¨ éľĢè¦ģ çļĦæĹ¶éĹ´ ĊĠĠĠ Ġprivate Ġvar Ġm Leaf Rotate Time Ġ= ĠLE AF _ ROT ATE _ TIME ĊĠĠĠ Ġprivate Ġval Ġm Resources : ĠResources ĊĠĠĠ Ġprivate Ġvar Ġm Leaf Bitmap : ĠBitmap ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Leaf Width Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Leaf Height Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Outer Bitmap : ĠBitmap ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Outer Src Rect : ĠRect ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Outer Dest Rect : ĠRect ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Outer Width Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Outer Height Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Total Width Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Total Height Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Bitmap Paint : ĠPaint ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm White Paint : ĠPaint ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Orange Paint : ĠPaint ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm White Rect F : ĠRect F ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Orange Rect F : ĠRect F ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Arc Rect F : ĠRect F ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Ġå½ĵåīį è¿Ľ åº¦ ĊĠĠĠ Ġprivate Ġvar Ġm Progress Ġ= Ġ 0 ĊĊĠĠĠ Ġ// Ġ æīĢ ç»ĺ åĪ¶ çļĦ è¿Ľ åº¦ æĿ¡ éĥ¨åĪĨ çļĦ å®½åº¦ ĊĠĠĠ Ġprivate Ġvar Ġm Progress Width Ġ= Ġ 0 ĊĊĠĠĠ Ġ// Ġå½ĵåīį æīĢåľ¨ çļĦ ç»ĺ åĪ¶ çļĦ è¿Ľ åº¦ æĿ¡ çļĦ ä½įç½® ĊĠĠĠ Ġprivate Ġvar ĠmCurrent Progress Position Ġ= Ġ 0 ĊĊĠĠĠ Ġ// Ġ å¼ § å½¢ çļĦ åįĬ å¾Ħ ĊĠĠĠ Ġprivate Ġvar Ġm Arc Radius Ġ= Ġ 0 ĊĊĠĠĠ Ġ// Ġarc çļĦ åı³ ä¸Ĭ è§Ĵ çļĦ x åĿĲæłĩ ï¼Į ä¹Łæĺ¯ çŁ© å½¢ x åĿĲæłĩ çļĦ èµ· å§ĭ çĤ¹ ĊĠĠĠ Ġprivate Ġvar Ġm Arc Right Location Ġ= Ġ 0 ĊĊĠĠĠ Ġ// Ġ çĶ¨äºİ äº§çĶŁ åı ¶ åŃĲ ä¿¡æģ¯ ĊĠĠĠ Ġprivate Ġval Ġm Leaf Factory : ĠLeaf Factory ĊĊĠĠĠ Ġ// Ġ äº§çĶŁ åĩºçļĦ åı ¶ åŃĲ ä¿¡æģ¯ ĊĠĠĠ Ġprivate Ġval Ġm Leaf Infos : ĠList < Leaf > ĊĊĠĠĠ Ġ// Ġ çĶ¨äºİ æİ§åĪ¶ éļıæľº å¢ŀåĬł çļĦæĹ¶éĹ´ ä¸į æĬ ± åĽ¢ ĊĠĠĠ Ġprivate Ġvar Ġm Add Time Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġfun Ġinit Paint () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Bitmap Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġm Bitmap Paint !!. is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Bitmap Paint !!. is D ither Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Bitmap Paint !!. is Filter Bitmap Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm White Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġm White Paint !!. is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm White Paint !!. color Ġ= ĠWH ITE _ COLOR ĊĠĠĠĠĠĠĠ Ġm Orange Paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġm Orange Paint !!. is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Orange Paint !!. color Ġ= ĠOR ANGE _ COLOR ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ç»ĺ åĪ¶ è¿Ľ åº¦ æĿ¡ åĴĮ åı ¶ åŃĲ ĊĠĠĠĠĠĠĠ Ġ// Ġ ä¹ĭ æīĢä»¥ æĬĬ åı ¶ åŃĲ æĶ¾åľ¨ è¿Ľ åº¦ æĿ¡ éĩĮ ç»ĺ åĪ¶ ï¼Į ä¸»è¦ģ æĺ¯ å±Ĥ çº§ åİŁåĽł ĊĠĠĠĠĠĠĠ Ġdraw Progress And Leaf s ( canvas ) ĊĠĠĠĠĠĠĠ Ġ// Ġdraw Leaf s ( canvas ); ĊĠĠĠĠĠĠĠ Ġcanvas . draw Bitmap ( m Outer Bitmap !! , Ġm Outer Src Rect , Ġm Outer Dest Rect !! , Ġm Bitmap Paint ) ĊĠĠĠĠĠĠĠ Ġpost Invalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Progress And Leaf s ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Progress Ġ>= ĠTOT AL _ PROGRESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Progress Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġm Progress Width ä¸º è¿Ľ åº¦ æĿ¡ çļĦ å®½åº¦ ï¼Į æł¹æį® å½ĵåīį è¿Ľ åº¦ ç®Ĺ åĩº è¿Ľ åº¦ æĿ¡ çļĦ ä½įç½® ĊĠĠĠĠĠĠĠ ĠmCurrent Progress Position Ġ= Ġm Progress Width Ġ* Ġm Progress Ġ/ ĠTOT AL _ PROGRESS ĊĠĠĠĠĠĠĠ Ġ// Ġ åį³ å½ĵåīį ä½įç½® åľ¨ åĽ¾ ä¸Ń æīĢ ç¤º 1 èĮĥåĽ´ åĨħ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Current Progress Position Ġ< Ġm Arc Radius ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠRx Log Tool . i ( TAG , Ġ" m Progress Ġ= Ġ" Ġ+ Ġm Progress Ġ+ Ġ" --- m Current Progress Position Ġ= Ġ" Ġ+ ĠmCurrent Progress Position Ġ+ Ġ"-- m Arc Progress Width " Ġ+ Ġm Arc Radius ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 1 . ç»ĺ åĪ¶ çĻ½ èī² ARC ï¼Į ç»ĺ åĪ¶ orange ĠARC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 2 . ç»ĺ åĪ¶ çĻ½ èī² çŁ© å½¢ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 1 . ç»ĺ åĪ¶ çĻ½ èī² ARC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( m Arc Rect F !! , Ġ 9 0 f , Ġ 1 8 0 f , Ġfalse , Ġm White Paint !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 2 . ç»ĺ åĪ¶ çĻ½ èī² çŁ© å½¢ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm White Rect F !!. left Ġ= Ġm Arc Right Location . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( m White Rect F !! , Ġm White Paint !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ç»ĺ åĪ¶ åı ¶ åŃĲ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Leaf s ( canvas ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 . ç»ĺ åĪ¶ æ£ ķ èī² ĠARC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åįķ è¾¹ è§Ĵ åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġangle Ġ= ĠMath . to Degrees ( Math . acos ((( m Arc Radius Ġ- ĠmCurrent Progress Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/ Ġm Arc Radius . toFloat ()). toDouble ())). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ èµ· å§ĭ çļĦ ä½įç½® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Angle Ġ= Ġ 1 8 0 Ġ- Ġangle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æī« è¿ĩ çļĦ è§Ĵ åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsweep Angle Ġ= Ġ 2 Ġ* Ġangle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ ĠRx Log Tool . i ( TAG , Ġ" start Angle Ġ= Ġ" Ġ+ Ġstart Angle ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( m Arc Rect F !! , Ġstart Angle . toFloat (), Ġsweep Angle . toFloat (), Ġfalse , Ġm Orange Paint !! ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠRx Log Tool . i ( TAG , Ġ" m Progress Ġ= Ġ" Ġ+ Ġm Progress Ġ+ Ġ" --- transfer ----- m Current Progress Position Ġ= Ġ" Ġ+ ĠmCurrent Progress Position Ġ+ Ġ"-- m Arc Progress Width " Ġ+ Ġm Arc Radius ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 1 . ç»ĺ åĪ¶ white ĠRE CT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 2 . ç»ĺ åĪ¶ Orange ĠARC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 . ç»ĺ åĪ¶ orange ĠRE CT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¿Ļä¸ª å±Ĥ çº§ è¿Ľè¡Į ç»ĺ åĪ¶ èĥ½ è®© åı ¶ åŃĲ æĦŁ è§ī æĺ¯ èŀ į åħ¥ æ£ ķ èī² è¿Ľ åº¦ æĿ¡ ä¸Ń ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 1 . ç»ĺ åĪ¶ white ĠRE CT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm White Rect F !!. left Ġ= ĠmCurrent Progress Position . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( m White Rect F !! , Ġm White Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ç»ĺ åĪ¶ åı ¶ åŃĲ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Leaf s ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 2 . ç»ĺ åĪ¶ Orange ĠARC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( m Arc Rect F !! , Ġ 9 0 f , Ġ 1 8 0 f , Ġfalse , Ġm Orange Paint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 . ç»ĺ åĪ¶ orange ĠRE CT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Orange Rect F !!. left Ġ= Ġm Arc Right Location . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Orange Rect F !!. right Ġ= ĠmCurrent Progress Position . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( m Orange Rect F !! , Ġm Orange Paint !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç»ĺ åĪ¶ åı ¶ åŃĲ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcanvas ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdraw Leaf s ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Leaf Rotate Time Ġ= Ġif Ġ( m Leaf Rotate Time Ġ<= Ġ 0 ) ĠLE AF _ ROT ATE _ TIME Ġelse Ġm Leaf Rotate Time ĊĠĠĠĠĠĠĠ Ġval ĠcurrentTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġm Leaf Infos . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorange _ p ulp Ġ= Ġm Leaf Infos [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( currentTime Ġ> Ġorange _ p ulp . startTime Ġ&& Ġorange _ p ulp . startTime Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ç»ĺ åĪ¶ åı ¶ åŃĲ ï¼ į ï¼ į æł¹æį® åı ¶ åŃĲ çļĦ ç±»åŀĭ åĴĮ å½ĵåīį æĹ¶éĹ´ å¾Ĺ åĩº åı ¶ åŃĲ çļĦ ï¼Ī x ï¼Į y ï¼ī ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Leaf Location ( orange _ p ulp , ĠcurrentTime ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæł¹æį® æĹ¶éĹ´ è®¡ç®Ĺ æĹ ĭ è½¬ è§Ĵ åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠéĢļè¿ĩ Matrix æİ§åĪ¶ åı ¶ åŃĲ æĹ ĭ è½¬ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatrix Ġ= ĠMatrix () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrans X Ġ= Ġm Left Margin Ġ+ Ġorange _ p ulp . x ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrans Y Ġ= Ġm Left Margin Ġ+ Ġorange _ p ulp . y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRx Log Tool . i ( TAG , Ġ" left . x Ġ= Ġ" Ġ+ Ġorange _ p ulp . x Ġ+ Ġ"-- orange _ p ulp . y =" Ġ+ Ġorange _ p ulp . y ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix . post Translate ( trans X , Ġtrans Y ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠéĢļè¿ĩ æĹ¶éĹ´ åħ³èģĶ æĹ ĭ è½¬ è§Ĵ åº¦ ï¼Į åĪĻ åı¯ä»¥ çĽ´æİ¥ éĢļè¿ĩ ä¿®æĶ¹ LEAF _ ROT ATE _ TIME è°ĥ èĬĤ åı ¶ åŃĲ æĹ ĭ è½¬ å¿« æħ¢ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrotate Fraction Ġ= Ġ(( currentTime Ġ- Ġorange _ p ulp . startTime ) Ġ% Ġm Leaf Rotate Time ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/ Ġm Leaf Rotate Time . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġangle Ġ= Ġ( rotate Fraction Ġ* Ġ 3 6 0 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæł¹æį® åı ¶ åŃĲ æĹ ĭ è½¬ æĸ¹åĲĳ ç¡®å®ļ åı ¶ åŃĲ æĹ ĭ è½¬ è§Ĵ åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrotate Ġ= Ġif Ġ( orange _ p ulp . rotate Direction Ġ== Ġ 0 ) Ġangle Ġ+ Ġorange _ p ulp . rotate Angle Ġelse Ġ- angle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ orange _ p ulp . rotate Angle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix . post Rotate ( rotate . toFloat (), Ġtrans X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġm Leaf Width Ġ/ Ġ 2 , Ġtrans Y Ġ+ Ġm Leaf Height Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Bitmap ( m Leaf Bitmap !! , Ġmatrix , Ġm Bitmap Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . restore () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Leaf Location ( orange _ p ulp : ĠLeaf , ĠcurrentTime : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinterval Time Ġ= ĠcurrentTime Ġ- Ġorange _ p ulp . startTime ĊĠĠĠĠĠĠĠ Ġm Leaf Float Time Ġ= Ġif Ġ( m Leaf Float Time Ġ<= Ġ 0 ) ĠLE AF _ FLOAT _ TIME Ġelse Ġm Leaf Float Time ĊĠĠĠĠĠĠĠ Ġif Ġ( interval Time Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( interval Time Ġ> Ġm Leaf Float Time ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorange _ p ulp . startTime Ġ= Ġ( System . currentTimeMillis () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ ĠRandom (). nextInt ( m Leaf Float Time . toInt ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġfraction Ġ= Ġinterval Time . toFloat () Ġ/ Ġm Leaf Float Time ĊĠĠĠĠĠĠĠ Ġorange _ p ulp . x Ġ= Ġ( m Progress Width Ġ- Ġm Progress Width Ġ* Ġfraction ) ĊĠĠĠĠĠĠĠ Ġorange _ p ulp . y Ġ= Ġget Location Y ( orange _ p ulp ). toFloat () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠéĢļè¿ĩ åı ¶ åŃĲ ä¿¡æģ¯ èİ·åıĸ å½ĵåīį åı ¶ åŃĲ çļĦ Y åĢ¼ ĊĠĠĠ Ġprivate Ġfun Ġget Location Y ( orange _ p ulp : ĠLeaf ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġy Ġ= ĠA ( wx + Q )+ h ĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġ( 2 . toFloat () Ġ* ĠMath . PI Ġ/ Ġm Progress Width ). toFloat () ĊĠĠĠĠĠĠĠ Ġvar Ġa Ġ= Ġmiddle Amp litude . toFloat () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( orange _ p ulp . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStart Type . LIT TLE Ġ-> ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå°ı æĮ ¯ å¹ ħ Ġ ï¼ Ŀ Ġä¸Ń çŃī æĮ ¯ å¹ ħ Ġ ï¼ į Ġ æĮ ¯ å¹ ħ å·® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ= Ġmiddle Amp litude Ġ- Ġmp litude Dis parity . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStart Type . MIDDLE Ġ-> Ġa Ġ= Ġmiddle Amp litude . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStart Type . BIG Ġ-> ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå°ı æĮ ¯ å¹ ħ Ġ ï¼ Ŀ Ġä¸Ń çŃī æĮ ¯ å¹ ħ Ġ+ Ġ æĮ ¯ å¹ ħ å·® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ= Ġmiddle Amp litude Ġ+ Ġmp litude Dis parity . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠRx Log Tool . i ( TAG , Ġ" --- a Ġ= Ġ" Ġ+ Ġa Ġ+ Ġ" --- w Ġ= Ġ" Ġ+ Ġw Ġ+ Ġ"-- orange _ p ulp . x Ġ= Ġ" Ġ+ Ġorange _ p ulp . x ); ĊĠĠĠĠĠĠĠ Ġreturn Ġ( a Ġ* ĠMath . sin ( w Ġ* Ġorange _ p ulp . x . toDouble ())). toInt () Ġ+ Ġm Arc Radius Ġ* Ġ 2 Ġ/ Ġ 3 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Bitmap () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Leaf Bitmap Ġ= Ġ( m Resources . get Drawable ( R . drawable . orange _ p ulp ) Ġas ĠBitmap Drawable ). bitmap ĊĠĠĠĠĠĠĠ Ġm Leaf Width Ġ= Ġm Leaf Bitmap ?. width !! ĊĠĠĠĠĠĠĠ Ġm Leaf Height Ġ= Ġm Leaf Bitmap ?. height !! ĊĠĠĠĠĠĠĠ Ġm Outer Bitmap Ġ= Ġ( m Resources . get Drawable ( R . drawable . orange _ p ulp _ frame ) Ġas ĠBitmap Drawable ). bitmap ĊĠĠĠĠĠĠĠ Ġm Outer Width Ġ= Ġm Outer Bitmap ?. width !! ĊĠĠĠĠĠĠĠ Ġm Outer Height Ġ= Ġm Outer Bitmap ?. height !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Size Changed ( w : ĠInt , Ġh : ĠInt , Ġold w : ĠInt , Ġold h : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Size Changed ( w , Ġh , Ġold w , Ġold h ) ĊĠĠĠĠĠĠĠ Ġm Total Width Ġ= Ġw ĊĠĠĠĠĠĠĠ Ġm Total Height Ġ= Ġh ĊĠĠĠĠĠĠĠ Ġm Progress Width Ġ= Ġm Total Width Ġ- Ġm Left Margin Ġ- Ġm Right Margin ĊĠĠĠĠĠĠĠ Ġm Arc Radius Ġ= Ġ( m Total Height Ġ- Ġ 2 Ġ* Ġm Left Margin ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġm Outer Src Rect Ġ= ĠRect ( 0 , Ġ 0 , Ġm Outer Width , Ġm Outer Height ) ĊĠĠĠĠĠĠĠ Ġm Outer Dest Rect Ġ= ĠRect ( 0 , Ġ 0 , Ġm Total Width , Ġm Total Height ) ĊĠĠĠĠĠĠĠ Ġm White Rect F Ġ= ĠRect F (( m Left Margin Ġ+ ĠmCurrent Progress Position ). toFloat (), Ġm Left Margin . toFloat (), Ġ( m Total Width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġm Right Margin ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Total Height Ġ- Ġm Left Margin ). toFloat ()) ĊĠĠĠĠĠĠĠ Ġm Orange Rect F Ġ= ĠRect F (( m Left Margin Ġ+ Ġm Arc Radius ). toFloat (), Ġm Left Margin . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Progress Position . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġ( m Total Height Ġ- Ġm Left Margin ). toFloat ()) ĊĠĠĠĠĠĠĠ Ġm Arc Rect F Ġ= ĠRect F ( m Left Margin . toFloat (), Ġm Left Margin . toFloat (), Ġ( m Left Margin Ġ+ Ġ 2 Ġ* Ġm Arc Radius ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Total Height Ġ- Ġm Left Margin ). toFloat ()) ĊĠĠĠĠĠĠĠ Ġm Arc Right Location Ġ= Ġm Left Margin Ġ+ Ġm Arc Radius ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® è¿Ľ åº¦ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġprogress ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Progress ( progress : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Progress Ġ= Ġprogress ĊĠĠĠĠĠĠĠ Ġpost Invalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ åı ¶ åŃĲ é£ ĺ å®Į ä¸Ģä¸ª åĳ¨æľŁ æīĢ èĬ± çļĦæĹ¶éĹ´ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® åı ¶ åŃĲ é£ ĺ å®Į ä¸Ģä¸ª åĳ¨æľŁ æīĢ èĬ± çļĦæĹ¶éĹ´ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtime ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġleaf Float Time : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Leaf Float Time Ġ= Ġif Ġ( m Leaf Float Time Ġ== Ġ 0 L ) ĠLE AF _ FLOAT _ TIME Ġelse Ġm Leaf Float Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Leaf Float Time ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( time ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Leaf Float Time Ġ= Ġtime ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ åı ¶ åŃĲ æĹ ĭ è½¬ ä¸Ģ åĳ¨ æīĢ èĬ± çļĦæĹ¶éĹ´ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® åı ¶ åŃĲ æĹ ĭ è½¬ ä¸Ģ åĳ¨ æīĢ èĬ± çļĦæĹ¶éĹ´ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtime ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġleaf Rotate Time : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Leaf Rotate Time Ġ= Ġif Ġ( m Leaf Rotate Time Ġ== Ġ 0 L ) ĠLE AF _ ROT ATE _ TIME Ġelse Ġm Leaf Rotate Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Leaf Rotate Time ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( time ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Leaf Rotate Time Ġ= Ġtime ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġenum Ġclass ĠStart Type Ġ{ ĊĠĠĠĠĠĠĠ ĠL IT TLE , ĠM ID DLE , ĠBIG ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åı ¶ åŃĲ å¯¹è±¡ ï¼Į çĶ¨æĿ¥ è®°å½ķ åı ¶ åŃĲ ä¸»è¦ģ æķ°æį® ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ author ĠA jian _ Studio ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġinner Ġclass ĠLeaf Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġåľ¨ ç»ĺ åĪ¶ éĥ¨åĪĨ çļĦ ä½įç½® ĊĠĠĠĠĠĠĠ Ġvar Ġx Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġvar Ġy Ġ= Ġ 0 f ĊĊĠĠĠĠĠĠĠ Ġ// Ġ æİ§åĪ¶ åı ¶ åŃĲ é£ ĺ åĬ¨ çļĦ å¹ ħ åº¦ ĊĠĠĠĠĠĠĠ Ġvar Ġtype : ĠStart Type ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// Ġ æĹ ĭ è½¬ è§Ĵ åº¦ ĊĠĠĠĠĠĠĠ Ġvar Ġrotate Angle Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġ// Ġ æĹ ĭ è½¬ æĸ¹åĲĳ -- 0 ä»£è¡¨ é¡º æĹ¶ éĴĪ ï¼Į 1 ä»£è¡¨ éĢ Ĩ æĹ¶ éĴĪ ĊĠĠĠĠĠĠĠ Ġvar Ġrotate Direction Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġ// Ġ èµ· å§ĭ æĹ¶éĹ´ ( ms ) ĊĠĠĠĠĠĠĠ Ġvar ĠstartTime : ĠLong Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠLeaf Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrandom Ġ= ĠRandom () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠMAX _ LEAF S Ġ= Ġ 8 ĊĊĠĠĠĠĠĠĠ Ġ// ĠçĶŁæĪĲ ä¸Ģä¸ª åı ¶ åŃĲ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ Ġfun Ġgenerate Leaf (): ĠLeaf Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorange _ p ulp Ġ= ĠLeaf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom Type Ġ= Ġrandom . nextInt ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éļı æĹ¶ ç±»åŀĭ ï¼ į Ġ éļıæľº æĮ ¯ å¹ ħ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtype Ġ= ĠStart Type . MIDDLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( random Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġtype Ġ= ĠStart Type . LIT TLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġtype Ġ= ĠStart Type . BIG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorange _ p ulp . type Ġ= Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éļıæľº èµ· å§ĭ çļĦ æĹ ĭ è½¬ è§Ĵ åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorange _ p ulp . rotate Angle Ġ= Ġrandom . nextInt ( 3 6 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éļıæľº æĹ ĭ è½¬ æĸ¹åĲĳ ï¼Ī é¡º æĹ¶ éĴĪ æĪĸ éĢ Ĩ æĹ¶ éĴĪ ï¼ī ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorange _ p ulp . rotate Direction Ġ= Ġrandom . nextInt ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä¸ºäºĨ äº§çĶŁ äº¤ éĶĻ çļĦ æĦŁ è§ī ï¼Į è®© å¼Ģå§ĭ çļĦæĹ¶éĹ´ æľī ä¸Ģ å®ļçļĦ éļıæľº æĢ§ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Leaf Float Time Ġ= Ġif Ġ( m Leaf Float Time Ġ<= Ġ 0 ) ĠLE AF _ FLOAT _ TIME Ġelse Ġm Leaf Float Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Add Time Ġ+= Ġrandom . nextInt (( m Leaf Float Time Ġ* Ġ 2 ). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorange _ p ulp . startTime Ġ= ĠSystem . currentTimeMillis () Ġ+ Ġm Add Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġorange _ p ulp ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġæł¹æį® ä¼łåħ¥ çļĦ åı ¶ åŃĲ æķ°éĩı äº§çĶŁ åı ¶ åŃĲ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ Ġ// Ġæł¹æį® æľĢå¤§ åı ¶ åŃĲ æķ° äº§çĶŁ åı ¶ åŃĲ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠĠĠĠĠ Ġfun Ġgenerate Leaf s ( orange _ p ulp Size : ĠInt Ġ= ĠMAX _ LEAF S ): ĠList < Leaf > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorange _ pul ps : ĠMutable List < Leaf > Ġ= ĠLinkedList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġorange _ p ulp Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorange _ pul ps . add ( generate Leaf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġorange _ pul ps ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" TO range Ju ice " ĊĊĠĠĠĠĠĠĠ Ġ// Ġæ· ¡ çĻ½ èī² ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠWH ITE _ COLOR Ġ= Ġ- 0 x 2 1 c 6 7 ĊĊĠĠĠĠĠĠĠ Ġ// Ġæ © Ļ èī² ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠOR ANGE _ COLOR Ġ= Ġ- 0 x 5 8 0 0 ĊĊĠĠĠĠĠĠĠ Ġ// Ġä¸Ń çŃī æĮ ¯ å¹ ħ å¤§å°ı ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠM ID DLE _ AMP LIT UDE Ġ= Ġ 1 3 ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ä¸įåĲĮ ç±»åŀĭ ä¹ĭéĹ´çļĦ æĮ ¯ å¹ ħ å·® è·Ŀ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAMP LIT UDE _ DIS PAR ITY Ġ= Ġ 5 ĊĊĠĠĠĠĠĠĠ Ġ// Ġ æĢ» è¿Ľ åº¦ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTOT AL _ PROGRESS Ġ= Ġ 1 0 0 ĊĊĠĠĠĠĠĠĠ Ġ// Ġ åı ¶ åŃĲ é£ ĺ åĬ¨ ä¸Ģä¸ª åĳ¨æľŁ æīĢ èĬ± çļĦæĹ¶éĹ´ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLE AF _ FLOAT _ TIME : ĠLong Ġ= Ġ 3 0 0 0 ĊĊĠĠĠĠĠĠĠ Ġ// Ġ åı ¶ åŃĲ æĹ ĭ è½¬ ä¸Ģ åĳ¨ éľĢè¦ģ çļĦæĹ¶éĹ´ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLE AF _ ROT ATE _ TIME : ĠLong Ġ= Ġ 2 0 0 0 ĊĊĠĠĠĠĠĠĠ Ġ// Ġ çĶ¨äºİ æİ§åĪ¶ ç»ĺ åĪ¶ çļĦ è¿Ľ åº¦ æĿ¡ è·Ŀç¦» å·¦ ï¼ ı ä¸Ĭ ï¼ ı ä¸ĭçļĦ è·Ŀç¦» ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLEFT _ M ARGIN Ġ= Ġ 9 ĊĊĠĠĠĠĠĠĠ Ġ// Ġ çĶ¨äºİ æİ§åĪ¶ ç»ĺ åĪ¶ çļĦ è¿Ľ åº¦ æĿ¡ è·Ŀç¦» åı³ çļĦ è·Ŀç¦» ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠRIGHT _ M ARGIN Ġ= Ġ 2 5 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Resources Ġ= Ġresources ĊĠĠĠĠĠĠĠ Ġm Left Margin Ġ= Ġdp 2 px ( context !! , ĠLEFT _ M ARGIN . toFloat ()) ĊĠĠĠĠĠĠĠ Ġm Right Margin Ġ= Ġdp 2 px ( context , ĠRIGHT _ M ARGIN . toFloat ()) ĊĠĠĠĠĠĠĠ Ġm Leaf Float Time Ġ= ĠLE AF _ FLOAT _ TIME ĊĠĠĠĠĠĠĠ Ġm Leaf Rotate Time Ġ= ĠLE AF _ ROT ATE _ TIME ĊĠĠĠĠĠĠĠ Ġinit Bitmap () ĊĠĠĠĠĠĠĠ Ġinit Paint () ĊĠĠĠĠĠĠĠ Ġm Leaf Factory Ġ= ĠLeaf Factory () ĊĠĠĠĠĠĠĠ Ġm Leaf Infos Ġ= Ġm Leaf Factory . generate Leaf s () ĊĠĠĠ Ġ} Ċ }