package Ġcom . ben ny . px er studio . shape . draw Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Paint Ċ import Ġcom . ben ny . px er studio . widget . P xer View Ċ import Ġcom . ben ny . px er studio . widget . P xer View . P xer Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠBen ny K ok Ġon Ġ 1 0 / 1 2 / 2 0 1 6 . Ċ Ġ*/ Ċ class ĠLine Shape Ġ: ĠDraw Shape () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġp Ġ= ĠPaint () ĊĠĠĠ Ġprivate Ġval Ġprevious P xer Ġ= ĠArrayList < P xer >() ĊĠĠĠ Ġprivate Ġvar Ġhas Init Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( ĊĠĠĠĠĠĠĠ Ġpx er View : ĠP xer View , ĊĠĠĠĠĠĠĠ Ġstart X : ĠInt , ĊĠĠĠĠĠĠĠ Ġstart Y : ĠInt , ĊĠĠĠĠĠĠĠ Ġend X : ĠInt , ĊĠĠĠĠĠĠĠ Ġend Y : ĠInt ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! super . on Draw ( px er View , Ġstart X , Ġstart Y , Ġend X , Ġend Y )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! has Init ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . color Ġ= ĠColor . YELLOW ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpx er View . preview !!. erase Color ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpx er View . preview Canvas . set Bitmap ( px er View . preview ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Init Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlayer To Draw Ġ= Ġpx er View . px er Layers [ px er View . current Layer ] !!. bitmap ĊĠĠĠĠĠĠĠ Ġdraw ( layer To Draw !! , Ġprevious P xer ) ĊĠĠĠĠĠĠĠ Ġpx er View . preview !!. erase Color ( Color . TRANSP ARENT ) Ċ /* ĊĠĠĠĠĠĠĠ Ġif Ġ( start X Ġ< Ġend X ) Ġend X ++ Ġelse Ġend X -- ĊĠĠĠĠĠĠĠ Ġif Ġ( start X Ġ> Ġend X ) Ġstart X ++ Ġelse Ġstart X -- ĊĠĠĠĠĠĠĠ Ġif Ġ( start Y Ġ< Ġend Y ) Ġend Y ++ Ġelse Ġend Y -- ĊĠĠĠĠĠĠĠ Ġif Ġ( start Y Ġ> Ġend Y ) Ġstart Y ++ Ġelse Ġstart Y -- Ċ */ ĊĠĠĠĠĠĠĠ Ġpx er View . preview Canvas . draw Line ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart X . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Y . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend X . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Y . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp ĊĠĠĠĠĠĠĠ Ġ) Ċ Ċ // ĠĠĠĠĠĠĠ Ġpx er View . preview !!. set Pixel ( start X , Ġstart Y , Ġpx er View . selected Color ) Ċ // ĠĠĠĠĠĠĠ Ġpx er View . preview !!. set Pixel ( end X , Ġend Y , Ġpx er View . selected Color ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġpx er View . pic Width ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( y Ġin Ġ 0 Ġuntil Ġpx er View . pic Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġc Ġ= Ġpx er View . preview !!. get Pixel ( i , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġstart X Ġ&& Ġy Ġ== Ġstart Y Ġ|| Ġi Ġ== Ġend X Ġ&& Ġy Ġ== Ġend Y ) Ġc Ġ= ĠColor . YELLOW ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c Ġ== ĠColor . YELLOW ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd P xer View ( layer To Draw , Ġprevious P xer , Ġi , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw On Layer ( layer To Draw , Ġpx er View , Ġi , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpx er View . invalidate () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw End ( px er View : ĠP xer View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Draw End ( px er View ) ĊĠĠĠĠĠĠĠ Ġhas Init Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġpx er View . end Draw ( previous P xer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġp . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠ Ġp . stroke Width Ġ= Ġ 1 f ĊĠĠĠ Ġ} Ċ } Ċ