/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . example . widgets . exercise Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġcom . example . widgets . R Ċ import Ġcom . lee . utils library . Bitmap Utils Ċ import Ġcom . ant . base . dp Ċ Ċ /** Ċ Ġ* Ġ< p > ------------------------------------------------ ------ Ċ Ġ* Ġ< p > Copyright Ġ( C ) Ġ 2 0 2 0 Ġwas u Ġcompany , ĠAll Ġrights Ġreserved . Ċ Ġ* Ġ< p > ------------------------------------------------ ------ Ċ Ġ* Ġ< p > Ċ Ġ* Ġ< p > Ċ Ġ* Ċ Ġ* Ġ@ author ĠAnt Ċ Ġ* Ġ@ date Ġon Ġ 2 0 2 0 / 5 / 3 Ġ 1 0 : 2 4 . Ċ Ġ*/ Ċ class ĠBreak TextView Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠView ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTEXT Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Lorem Ġipsum Ġdolor Ġsit Ġamet , Ġconsectetur Ġadipiscing Ġelit . ĠNull am Ġcon dim ent um Ġat Ġvelit Ġut Ġh end rer it . ĠP ra es ent Ġsed Ġlorem Ġa Ġarcu Ġven en atis Ġcon gue Ġnec Ġin Ġjusto . ĠClass Ġapt ent Ġt ac iti Ġs oci os qu Ġad Ġl itor a Ġtor quent Ġper Ġcon ub ia Ġno stra , Ġper Ġin cept os Ġhim en ae os . ĠUt Ġvar ius Ġport t itor Ġris us , Ġcommodo Ġe gest as Ġpur us Ġconsectetur Ġla ore et . ĠV iv am us Ġac Ġipsum Ġturpis . ĠP ellentesque Ġbland it Ġquam Ġid Ġnisi Ġlob ort is Ġconsequat . ĠCur abit ur Ġvar ius Ġsed Ġmassa Ġquis Ġd ap ibus . ĠF us ce Ġelit Ġtort or , Ġele if end Ġid Ġcommodo Ġut , Ġvol ut pat Ġet Ġsapi en . ĠAli quam Ġvitae Ġelit Ġet Ġquam Ġe gest as Ġm oll is . ĠNull am Ġtincidunt Ġmagna Ġquis Ġvelit Ġport t itor Ġsc eler isque ." ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġfont Metrics Ġ= ĠPaint . Font Metrics () ĊĠĠĠ Ġprivate Ġval Ġstart Offset : ĠFloat ĊĊĠĠĠ Ġprivate Ġval Ġpaint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġstyle Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . BLACK ĊĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġ 2 0 . dp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġcenter X Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġcenter Y Ġ= Ġ 0 f ĊĊĠĠĠ Ġprivate Ġval Ġmeasured Width Ġ= Ġfloat ArrayOf ( 0 f ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbitmap : ĠBitmap ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġpaint . getFont Metrics ( font Metrics ) ĊĠĠĠĠĠĠĠ Ġstart Offset Ġ= Ġfont Metrics . top ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Size Changed ( w : ĠInt , Ġh : ĠInt , Ġold w : ĠInt , Ġold h : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcenter X Ġ= Ġw . shr ( 1 ). toFloat () ĊĠĠĠĠĠĠĠ Ġcenter Y Ġ= Ġh . shr ( 1 ). toFloat () ĊĊĠĠĠĠĠĠĠ Ġbitmap Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap Utils . create Bitmap ( 5 0 . dp , ĠR . mip map . ic _ avatar , Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbitmap Left Ġ= Ġwidth Ġ- Ġbitmap . width . toFloat () ĊĠĠĠĠĠĠĠ Ġval Ġbitmap Top Ġ= Ġ 7 0 . dp ĊĠĠĠĠĠĠĠ Ġcanvas . draw Bitmap ( bitmap , Ġbitmap Left , Ġbitmap Top , Ġpaint ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġstart Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġoffset Ġ= Ġ- start Offset ĊĠĠĠĠĠĠĠ Ġwhile Ġ( start Ġ< ĠTEXT . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Width Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( offset Ġ+ Ġfont Metrics . bottom Ġ> Ġbitmap Top Ġ&& Ġoffset Ġ+ Ġfont Metrics . top Ġ< Ġbitmap Top Ġ+ Ġbitmap . height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap Left ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . break Text ( TEXT , Ġstart , ĠTEXT . length , Ġtrue , Ġtext Width , Ġmeasured Width ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( TEXT , Ġstart , Ġstart Ġ+ Ġcount , Ġ 0 f , Ġoffset , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ+= Ġcount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ+= Ġpaint . font Spacing ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }