package Ġorg . s xc z st . en joy edu . course . uit op ic . my card view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics .* Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . appcompat . widget . AppCompat ImageView Ċ Ċ /** Ċ Ġ* Ġ@ author ĠĠĠĠĠ Ġs xc z st Ċ Ġ* Ġ@ date ĠĠĠĠĠĠĠĠ 2 0 2 1 / 4 / 1 6 Ġ 2 1 : 3 8 Ċ Ġ*/ Ċ class ĠRound ImageView Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠAppCompat ImageView ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm Paint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĠĠĠ Ġprivate Ġval Ġm X fer mode Ġ= ĠPort er D uff X fer mode ( Port er D uff . Mode . SRC _ IN ) ĊĠĠĠ Ġprivate Ġvar Ġm Border Radius Ġ= Ġ 2 0 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Border Radius Ġ= Ġdip 2 px ( context , Ġm Border Radius ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdip 2 px ( context : ĠContext , Ġdp : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdensity Ġ= Ġcontext . resources . display Metrics . density ĊĠĠĠĠĠĠĠ Ġreturn Ġ( dp Ġ/ Ġdensity Ġ+ Ġ 0 . 5 f ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġdrawable Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġsc Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . save Layer ( 0 f , Ġ 0 f , Ġwidth . toFloat (), Ġheight . toFloat (), Ġnull , ĠCanvas . ALL _ SAVE _ FLAG ) ĊĠĠĠĠĠĠĠ Ġ// Ġ çĶ» æºĲ åĽ¾åĥı ï¼Į ä¸º ä¸Ģä¸ª åľĨ è§Ĵ çŁ© å½¢ ĊĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Border Radius . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Border Radius . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Paint ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® æ·· åĲĪ æ¨¡å¼ı ĊĠĠĠĠĠĠĠ Ġm Paint . xfer mode Ġ= Ġm X fer mode ĊĠĠĠĠĠĠĠ Ġ// Ġ çĶ» çĽ®æłĩ åĽ¾åĥı ĊĠĠĠĠĠĠĠ Ġcanvas . draw Bitmap ( drawable To Bitmap ( ex Change Size ( drawable )), Ġ 0 f , Ġ 0 f , Ġm Paint ) ĊĠĠĠĠĠĠĠ Ġ// Ġ è¿ĺ åİŁ æ·· åĲĪ æ¨¡å¼ı ĊĠĠĠĠĠĠĠ Ġm Paint . xfer mode Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġcanvas . restore To Count ( sc ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdrawable To Bitmap ( drawable : ĠDrawable ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġex Change Size ( drawable : ĠDrawable ): ĠDrawable Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} Ċ }