package Ġcom . nod mp . guide . customize _ view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics .* Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . app . Core Component Factory Ċ import Ġcom . nod mp . guide . R Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ class ĠH encode 1 View ( context : ĠContext ?, Ġattrs : ĠAttributeSet ?) Ġ: ĠView ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġvar Ġpaint : ĠPaint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĠĠĠ Ġvar Ġpaint Draw : ĠPaint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠRAD IUS Ġ= ĠUtils . dp 2 dx ( 8 0 f ) ĊĠĠĠĠĠĠĠ Ġval ĠR ING _ WIDTH Ġ= ĠUtils . dp 2 dx ( 2 0 f ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġpaint . text Size Ġ= ĠUtils . dp 2 dx ( 4 0 f ) ĊĠĠĠĠĠĠĠ Ġpaint . type face Ġ= ĠType face . createFrom Asset ( context ?. assets , Ġ" web font . ttf ") ĊĠĠĠĠĠĠĠ Ġpaint . textAlign Ġ= ĠPaint . Align . CENTER ĊĊĠĠĠ Ġ} ĊĊĠĠ ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas ?. draw Color ( Color . arg b ( 0 . 2 f , Ġ 1 8 0 f , Ġ 1 0 f , Ġ 2 0 f )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . ST RO KE ĊĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= ĠColor . RED ĊĠĠĠĠĠĠĠ Ġpaint Draw . color Ġ= ĠColor . WHITE ĊĠĠĠĠĠĠĠ Ġpaint Draw . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠ Ġpaint Draw . stroke Width Ġ= ĠUtils . dp 2 dx ( 2 0 f ) ĊĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Circle ( width Ġ/ Ġ 2 f , Ġheight Ġ/ Ġ 2 f , ĠUtils . dp 2 dx ( 4 0 f ), Ġpaint Draw ) ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Rect ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ/ Ġ 2 f Ġ- ĠUtils . dp 2 dx ( 4 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ/ Ġ 2 f Ġ- ĠUtils . dp 2 dx ( 4 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ/ Ġ 2 f Ġ+ ĠUtils . dp 2 dx ( 4 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ/ Ġ 2 f Ġ+ ĠUtils . dp 2 dx ( 4 0 f ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint ĊĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġcanvas ?. draw RGB ( 1 1 1 , Ġ 1 1 1 , Ġ 1 1 1 ) Ċ // ĠĠĠĠĠĠĠ Ġcanvas ?. draw ARGB ( 2 0 , Ġ 1 1 1 , Ġ 1 1 1 , Ġ 1 1 1 ) ĊĠĠĠĠĠĠĠ Ġpaint . stroke Width Ġ= ĠUtils . dp 2 dx ( 2 0 f ) ĊĠĠĠĠĠĠĠ Ġpaint . stroke Cap Ġ= ĠPaint . Cap . ROUND ĊĊĠĠĠĠĠĠĠ Ġvar Ġfloat Array : ĠFloat Array Ġ= Ġfloat ArrayOf ( 0 f , Ġ 0 f , Ġ 1 0 0 f , Ġ 1 0 0 f , Ġ 2 0 0 f , Ġ 2 0 0 f , Ġ 3 0 0 f , Ġ 3 0 0 f ) ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Points ( float Array , Ġ 0 , Ġ 8 , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġpaint . stroke Width Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Line ( 0 f , Ġ 0 f , Ġwidth . toFloat (), Ġheight . toFloat (), Ġpaint ) ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Line ( 0 f , Ġheight . toFloat (), Ġwidth . toFloat (), Ġ 0 f , Ġpaint ) Ċ // ĠĠĠĠĠĠĠ Ġvar Ġfloats : Float Array Ġ= Ġfloat ArrayOf () Ċ // ĠĠĠĠĠĠĠ Ġpaint ?. style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġpaint . setColor ( resources . getColor ( R . color . color Primary )) ĊĠĠĠĠĠĠĠ Ġvar Ġrect F : ĠRect F Ġ= ĠRect F ( 1 0 0 f , Ġ 1 0 0 f , Ġ 3 0 0 f , Ġ 3 0 0 f ) ĊĊĠĠĠĠĠĠĠ Ġcanvas ?. draw O val ( rect F , Ġpaint ) ĊĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Round Rect ( rect F , Ġ 3 0 f , Ġ 3 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġ// //////// // ĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġresources . getColor ( android . R . color . holo _ green _ dark ) ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Rect ( 1 0 0 f Ġ- Ġ 2 0 f , Ġ 1 0 0 f Ġ- Ġ 2 0 f , Ġ 3 0 0 f Ġ+ Ġ 2 0 f , Ġ 3 0 0 f Ġ+ Ġ 2 0 f , Ġpaint ) ĊĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġresources . getColor ( android . R . color . holo _ blue _ light ) ĊĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Arc ( rect F , Ġ 0 f , Ġ 9 0 f , Ġtrue , Ġpaint ) Ċ // ĠĠĠĠĠĠĠ Ġcanvas ?. draw Paint () ĊĠĠĠ Ġ} Ċ Ċ }