package Ġcom . com su on . overlay instruction Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics .* Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ Ċ class ĠView Port Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠView ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġvar Ġtop Pos Ġ= Ġ 1 0 0 . 0 f ĊĠĠĠ Ġvar Ġleft Pos Ġ= Ġ 1 0 0 . 0 f ĊĠĠĠ Ġvar Ġmask Height Ġ= Ġ 3 0 0 . 0 f ĊĠĠĠ Ġvar Ġmask Width Ġ= Ġ 6 0 0 . 0 f ĊĊĠĠĠ Ġprivate Ġval Ġer aser Paint : ĠPaint Ġ= ĠPaint () ĊĠĠĠ Ġprivate Ġval Ġframe Paint : ĠPaint Ġ= ĠPaint () ĊĊĠĠĠ Ġvar Ġframe Padding Ġ= Ġ 0 f ĊĠĠĠ Ġvar Ġframe Stroke Width Ġ= Ġ 4 f ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġframe Paint . stroke Width Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġframe Color Ġ= ĠColor . WHITE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġframe Paint . color Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġframe Corner Radius Ġ= Ġ 8 f ĊĊĠĠĠ Ġvar Ġdim med BackgroundColor Ġ= ĠColor . parse Color ("# B 3 0 0 0 0 0 0 ") ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Will Not Draw ( false ) ĊĠĠĠĠĠĠĠ Ġset Layer Type ( LAYER _ TYPE _ HARD WARE , Ġnull ) ĊĠĠĠĠĠĠĠ Ġer aser Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġer aser Paint . color Ġ= ĠColor . TRANSP ARENT ĊĠĠĠĠĠĠĠ Ġer aser Paint . xfer mode Ġ= ĠPort er D uff X fer mode ( Port er D uff . Mode . CLEAR ) ĊĊĠĠĠĠĠĠĠ Ġframe Paint . stroke Width Ġ= Ġframe Stroke Width ĊĠĠĠĠĠĠĠ Ġframe Paint . color Ġ= Ġframe Color ĊĠĠĠĠĠĠĠ Ġframe Paint . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠ Ġframe Paint . path Effect Ġ= ĠDash Path Effect ( float ArrayOf ( 2 0 f , Ġ 1 0 f ), Ġ 1 5 f ) ĊĠĠĠĠĠĠĠ Ġframe Paint . is Anti Alias Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Draw Allocation ") ĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Color ( dim med BackgroundColor ) ĊĠĠĠĠĠĠĠ Ġval Ġhl Left Ġ= Ġleft Pos Ġ- Ġframe Padding ĊĠĠĠĠĠĠĠ Ġval Ġhl Top Ġ= Ġtop Pos Ġ- Ġframe Padding ĊĠĠĠĠĠĠĠ Ġval Ġhl Right Ġ= Ġleft Pos Ġ+ Ġmask Width Ġ+ Ġframe Padding ĊĠĠĠĠĠĠĠ Ġval Ġhl Bottom Ġ= Ġtop Pos Ġ+ Ġmask Height Ġ+ Ġframe Padding ĊĊĠĠĠĠĠĠĠ Ġval Ġrect Ġ= ĠRect F ( hl Left , Ġhl Top , Ġhl Right , Ġhl Bottom ) ĊĊĠĠĠĠĠĠĠ Ġval Ġframe Rect Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRect F ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhl Left Ġ- Ġframe Stroke Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhl Top Ġ- Ġframe Stroke Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhl Right Ġ+ Ġframe Stroke Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhl Bottom Ġ+ Ġframe Stroke Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠPath () ĊĠĠĠĠĠĠĠ Ġpath . add Round Rect ( frame Rect , Ġframe Corner Radius , Ġframe Corner Radius , ĠPath . Direction . CW ) ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Path ( path , Ġframe Paint ) ĊĠĠĠĠĠĠĠ Ġcanvas ?. draw Round Rect ( rect , Ġframe Corner Radius , Ġframe Corner Radius , Ġer aser Paint ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlocate High Light ( left : ĠInt , Ġtop : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . top Pos Ġ= Ġtop . toFloat () ĊĠĠĠĠĠĠĠ Ġthis . left Pos Ġ= Ġleft . toFloat () ĊĠĠĠĠĠĠĠ Ġthis . mask Width Ġ= Ġwidth . toFloat () ĊĠĠĠĠĠĠĠ Ġthis . mask Height Ġ= Ġheight . toFloat () ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} Ċ Ċ }