package Ġcom . zy lab . sketch y component Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġcom . zy lab . sketch y . drawable .* Ċ import Ġcom . zy lab . sketch y . icon . Sk Arrow Icon Ċ import Ġcom . zy lab . sketch y . model . Sk Point Ċ import Ġcom . zy lab . sketch y component . view . Display Line Ċ import Ġkotlinx . android . synt hetic . main . activity _ shape .* Ċ import Ġkotlinx . android . synt hetic . main . activity _ shape . toolbar Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġz hang yi Ġon Ġ 1 9 - 1 1 - 2 8 Ċ Ġ*/ Ċ Ċ class ĠShape Activity Ġ: ĠBase Activity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdisplay DataList : ĠMutable List < Display Line . Display Data > ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ shape ) ĊĠĠĠĠĠĠĠ Ġinit Title Bar () ĊĠĠĠĠĠĠĠ Ġscroll View . background Ġ= ĠSk Square Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfill Color Ġ= Ġresources . getColor ( R . color . bg 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠ Ġlayout . display DataList Ġ= Ġdisplay DataList ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Title Bar () Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . background Ġ= ĠSk Square Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfill Color Ġ= Ġresources . getColor ( R . color . toolbar ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġarrow Img . background Ġ= ĠSk Arrow Icon () ĊĠĠĠĠĠĠĠ Ġarrow Img . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtitle Text . text Ġ= Ġ" Shape " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġdisplay DataList Ġ= ĠArrayList < Display Line . Display Data >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Display Line . Display Data (" Line ", ĠArrayList < Sk Drawable >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk Line Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Point Ġ= ĠSk Point ( 0 . 0 , ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 5 0 F ). toDouble ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Point Ġ= ĠSk Point ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 1 0 0 F ). toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 5 0 F ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk Line Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Point Ġ= ĠSk Point ( Utils . dp 2 px ( this @ Shape Activity , Ġ 5 0 F ). toDouble (), Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Point Ġ= ĠSk Point ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 5 0 F ). toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 1 0 0 F ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk Line Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Point Ġ= ĠSk Point ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Point Ġ= ĠSk Point ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 1 0 0 F ). toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 1 0 0 F ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Display Line . Display Data (" Square ", ĠArrayList < Sk Drawable >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Sk Square Drawable ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk Square Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Point Ġ= ĠSk Point ( 0 . 0 , ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 2 5 F ). toDouble ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsquare Width Ġ= ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 1 0 0 F ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsquare Height Ġ= ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 5 0 F ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Color Ġ= Ġresources . getColor ( R . color . bg 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk Square Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 5 0 F ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 1 0 0 F ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Color Ġ= Ġresources . getColor ( R . color . bg 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Display Line . Display Data (" Circle ", ĠArrayList < Sk Drawable >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Sk Circle Drawable ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Sk Circle Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Color Ġ= Ġresources . getColor ( R . color . bg 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Display Line . Display Data (" Arc ", ĠArrayList < Sk Drawable >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Sk Arc Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Angle Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsweep Angle Ġ= Ġ 1 8 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Sk Arc Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Color Ġ= Ġresources . getColor ( R . color . bg 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Angle Ġ= Ġ- 4 5 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsweep Angle Ġ= Ġ 9 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Ġ= ĠSk Point ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 2 0 F ). toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 5 0 F ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradius Ġ= ĠUtils . dp 2 px ( this @ Shape Activity , Ġ 5 0 F ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Sk Arc Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Angle Ġ= Ġ- 4 5 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsweep Angle Ġ= Ġ 2 7 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Color Ġ= Ġresources . getColor ( R . color . logo 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Display Line . Display Data (" Image ", ĠArrayList < Sk Drawable >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Sk Img Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠSk Img Drawable . STYLE _ CIR CLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg Ġ= Ġresources . get Drawable ( R . mip map . cat ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Sk Img Drawable (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg Ġ= Ġresources . get Drawable ( R . mip map . cat ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ