package Ġcom . shu ai yu . my move image Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics .* Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View ĊĊ Ċ public Ġclass ĠMy Move View Ġ: ĠView Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġpaint : ĠPaint ĊĠĠĠ Ġlateinit Ġvar Ġbackground paint : ĠPaint ĊĠĠĠ Ġlateinit Ġvar Ġm context : Context ĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠ Ġthis . m context = context ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcx : ĠFloat Ġ= ĠFloat . MIN _ VALUE ĊĠĠĠ Ġvar Ġcy : ĠFloat Ġ= ĠFloat . MIN _ VALUE ĊĠĠĠ Ġvar Ġradius : ĠFloat Ġ= Ġ 1 0 0 f ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġattribute Set : ĠAttributeSet , ĊĠĠĠĠĠĠĠ Ġpaint : ĠPaint ĊĠĠĠ Ġ) Ġ: Ġsuper ( context , Ġattribute Set ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġset ViewData ( cx : ĠFloat , Ġcy : ĠFloat , Ġr ado is : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . cx Ġ= Ġcx ĊĠĠĠĠĠĠĠ Ġthis . cy Ġ= Ġcy ĊĠĠĠĠĠĠĠ Ġthis . radius Ġ= Ġradius ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattribute Set : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( ĊĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠ Ġattribute Set , ĊĠĠĠĠĠĠĠ Ġdef Style Attr ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġmy width : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġmy H ight : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠĠĠĠĠ Ġmy width Ġ= ĠMeasure Spec . getSize ( width Measure Spec ); ĊĠĠĠĠĠĠĠ Ġmy H ight Ġ= ĠMeasure Spec . getSize ( height Measure Spec ); ĊĠĠĠĠĠĠĠ ĠLog . e (" TAG ", Ġ" on Measure : Ġ$ my H ight ĠĠĠ Ġ$ my width ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Resource As Color ") ĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġpaint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= ĠR . color . to uming ĊĠĠĠĠĠĠĠ Ġpaint . alpha Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġpaint . is Anti Alias Ġ= Ġtrue ;// æĬ Ĺ éĶ ¯ é½ ¿ ĊĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . FILL ;// å®ŀ å¿ĥ çŁ© å½¢ æ¡Ĩ ĊĠĠĠĠĠĠĠ Ġpaint . xfer mode Ġ= ĠPort er D uff X fer mode ( Port er D uff . Mode . SRC _ OUT ); ĊĊĊĠĠĠĠĠĠĠ Ġbackground paint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġbackground paint . color Ġ= ĠR . color . gray ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Circle ( my width Ġ/ Ġ 2 . toFloat (), Ġmy H ight Ġ/ Ġ 2 . toFloat (), Ġradius , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw ARGB ( 3 6 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĊĠĠĠ Ġ} Ċ // ĠĠĠ Ġprivate Ġfun Ġcreate Image (): ĠBitmap ? Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġpaint Ġ= ĠPaint () Ċ // ĠĠĠĠĠĠĠ Ġpaint . is Anti Alias Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠ Ġval Ġfinal B mp Ġ= ĠBitmap . create Bitmap ( view Width , Ġview Height , ĠBitmap . Config . ARGB _ 8 8 8 8 ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( final B mp ) Ċ // ĠĠĠĠĠĠĠ Ġcanvas . draw Bitmap ( background Bitmap , Ġ 0 , Ġ 0 , Ġpaint ) Ċ // ĠĠĠĠĠĠĠ Ġpaint . xfer mode Ġ= ĠPort er D uff X fer mode ( Port er D uff . Mode . SRC _ IN ) Ċ // ĠĠĠĠĠĠĠ Ġcanvas . draw Bitmap ( m Bitmap , Ġ 0 , Ġ 0 , Ġpaint ) Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġfinal B mp Ċ // ĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠĠĠ Ġfun ĠT . asd Ġ( nm : T {} ): R { Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġnm ( this ) Ċ // ĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġdrawable To Bitmap ( drawable : ĠDrawable ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠBitmap . create Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable . intrinsic Width , Ġdrawable . intrinsic Height , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( drawable . opacity Ġ!= ĠPixel Format . OP A QUE ) ĠBitmap . Config . ARGB _ 8 8 8 8 Ġelse ĠBitmap . Config . RGB _ 5 6 5 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( bitmap ) ĊĠĠĠĠĠĠĠ Ġdrawable . setBounds ( 0 , Ġ 0 , Ġdrawable . intrinsic Width , Ġdrawable . intrinsic Height ) ĊĠĠĠĠĠĠĠ Ġdrawable . draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbitmap ĊĠĠĠ Ġ} Ċ }