package Ġcom . s het j . di yal bu me . view Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Blur Mask Filter Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . widget . AppCompat TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . s het j . di yal bu me . R Ċ Ċ /** Ċ Ġ* Ġ åľĨ å½¢ åĳ¼ åĲ ¸ å½ķ éŁ³ çĬ¶æĢģ Ċ Ġ*/ Ċ class ĠH alo ImageView Ġ: ĠAppCompat TextView Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġvalue Animator : ĠValue Animator ? Ġ= null ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Paint : ĠPaint ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm BGP aint : ĠPaint ĊĠĠĠ Ġprivate Ġvar Ġh alo Color : ĠInt Ġ= ĠColor . RED ĊĠĠĠ Ġprivate Ġvar Ġh alo Size : ĠFloat Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġh alo BackgroundColor : Ġ ĠInt Ġ= ĠColor . RED ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( null , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( attrs , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( attrs , Ġdef Style ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit ( attrs : ĠAttributeSet ?, Ġdef Style : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġcontext . obtain Styled Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs , ĠR . style able . H alo ImageView , Ġdef Style , Ġ 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh alo Color Ġ= Ġget Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . H alo ImageView _ h alo Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , R . color . app _ color _ theme _ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh alo BackgroundColor Ġ= Ġget Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . H alo ImageView _ h alo BackgroundColor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , R . color . app _ color _ theme _ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh alo Size Ġ= Ġget Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . H alo ImageView _ h alo Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( h alo Size Ġ< Ġ 1 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh alo Size Ġ= Ġ 1 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Paint Ġ= ĠPaint (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠPaint . ANTI _ ALIAS _ FLAG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġh alo Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask Filter Ġ= ĠBl ur Mask Filter ( h alo Size , ĠBl ur Mask Filter . Blur . OUT ER ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm BGP aint Ġ= Paint (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠPaint . ANTI _ ALIAS _ FLAG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġh alo BackgroundColor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Layer Type ( View . LAYER _ TYPE _ SOFTWARE , null ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġstart Anim o (){ ĊĠĠĠĠĠĠĠ Ġvalue Animator Ġ= ĠValue Animator . of Float ( 8 f , Ġh alo Size ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 6 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat Mode Ġ= Value Animator . RE VERSE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat Count Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Update Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Value Ġ= Ġit ?. animated Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset H alo Size ( current Value Ġas ĠFloat ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġset H alo Size ( size : Float ){ Ċ // ĠĠĠĠĠĠĠ Ġh alo Size Ġ= Ġsize Ġ+ Ġ 5 f ĊĠĠĠĠĠĠĠ Ġm Paint . mask Filter Ġ= Ġ ĠBl ur Mask Filter ( size , ĠBl ur Mask Filter . Blur . OUT ER ) ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop Anim (){ ĊĠĠĠĠĠĠĠ Ġvalue Animator ?. cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcanvas . draw Circle (( width / 2 ). toFloat (), Ġ( height / 2 ). toFloat (), Ġ( width / 2 ). toFloat ()- h alo Size , Ġm Paint ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Circle (( width / 2 ). toFloat (), Ġ( height / 2 ). toFloat (), Ġ( width / 2 ). toFloat ()- h alo Size , Ġm BGP aint ) ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attached To Window () ĊĠĠĠĠĠĠĠ Ġstart Anim o () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detached From Window () ĊĠĠĠĠĠĠĠ Ġstop Anim () ĊĠĠĠ Ġ} Ċ }