package Ġcom . github . ek lipse 2 k 8 . catalog Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . style . ForegroundColor Span Ċ import Ġandroid . text . style . Relative Size Span Ċ import Ġandroid . text . style . Style Span Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Seek Bar Ċ import Ġandroid . widget . Seek Bar . On Seek Bar ChangeListener Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . content . res . Resources Compat Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . animation . E asing . E ase InOut Cubic Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . animation . E asing . E ase InOut Quad Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . charts . Pie Chart Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . components . Legend Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . data . Entry Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . data . Pie Data Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . data . Pie DataSet Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . data . Pie Entry Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . formatter . Percent Formatter Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . highlight . Highlight Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . listener . On Chart Value Selected Listener Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . utils . Color Template Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . utils . Color Template . holo Blue Ċ import Ġcom . github . ek lipse 2 k 8 . chart ing . utils . MP PointF Ċ import Ġcom . github . ek lipse 2 k 8 . catalog . not important . Demo Base Ċ Ċ class ĠP ie Chart Activity Ġ: ĠDemo Base (), ĠOn Seek Bar ChangeListener , ĠOn Chart Value Selected Listener Ġ{ ĊĠ Ġprivate Ġlateinit Ġvar Ġchart : ĠP ie Chart ĊĠ Ġprivate Ġlateinit Ġvar Ġseek Bar X : ĠSeek Bar ĊĠ Ġprivate Ġlateinit Ġvar Ġseek Bar Y : ĠSeek Bar ĊĠ Ġprivate Ġlateinit Ġvar Ġtv X : ĠTextView ĊĠ Ġprivate Ġlateinit Ġvar Ġtv Y : ĠTextView ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ ĠsetContentView ( R . layout . activity _ pie chart ) ĊĠĠĠ Ġtitle Ġ= Ġ" Pie Chart Activity " ĊĠĠĠ Ġtv X Ġ= ĠfindViewById ( R . id . tv X Max ) ĊĠĠĠ Ġtv Y Ġ= ĠfindViewById ( R . id . tv Y Max ) ĊĠĠĠ Ġseek Bar X Ġ= ĠfindViewById ( R . id . seek Bar 1 ) ĊĠĠĠ Ġseek Bar Y Ġ= ĠfindViewById ( R . id . seek Bar 2 ) ĊĠĠĠ Ġseek Bar X . setOn Seek Bar ChangeListener ( this ) ĊĠĠĠ Ġseek Bar Y . setOn Seek Bar ChangeListener ( this ) ĊĠĠĠ Ġchart Ġ= ĠfindViewById ( R . id . chart 1 ) ĊĠĠĠ Ġchart . set Use Percent Values ( true ) ĊĠĠĠ Ġchart . description . isEnabled Ġ= Ġfalse ĊĠĠĠ Ġchart . set Extra Offsets ( 5 f , Ġ 1 0 f , Ġ 5 f , Ġ 5 f ) ĊĠĠĠ Ġchart . drag De cel eration F riction Coef Ġ= Ġ 0 . 9 5 f ĊĠĠĠ Ġchart . center Text Ġ= Ġgenerate Center Sp ann able Text () ĊĠĠĠ Ġchart . is Draw Hole Enabled Ġ= Ġtrue ĊĠĠĠ Ġchart . set Hole Color ( Color . WHITE ) ĊĠĠĠ Ġchart . set Transparent Circle Color ( Color . WHITE ) ĊĠĠĠ Ġchart . set Transparent Circle Alpha ( 1 1 0 ) ĊĠĠĠ Ġchart . hole Radius Ġ= Ġ 5 8 f ĊĠĠĠ Ġchart . transparent Circle Radius Ġ= Ġ 6 1 f ĊĠĠĠ Ġchart . set Draw Center Text ( true ) ĊĠĠĠ Ġchart . rotation Angle Ġ= Ġ 0 f ĊĠĠĠ Ġ// Ġenable Ġrotation Ġof Ġthe Ġchart Ġby Ġtouch ĊĠĠĠ Ġchart . is Rotation Enabled Ġ= Ġtrue ĊĠĠĠ Ġchart . set Highlight Per Tap Enabled ( true ) ĊĊĠĠĠ Ġ// Ġchart . set Unit (" Ġâ Ĥ¬ "); ĊĠĠĠ Ġ// Ġchart . set Draw Units In Chart ( true ); ĊĊĠĠĠ Ġ// Ġadd Ġa Ġselection Ġlistener ĊĠĠĠ Ġchart . setOn Chart Value Selected Listener ( this ) ĊĠĠĠ Ġseek Bar X . set Progress ( 4 ) ĊĠĠĠ Ġseek Bar Y . set Progress ( 1 0 ) ĊĠĠĠ Ġchart . animate Y ( 1 4 0 0 , ĠE ase InOut Quad ) ĊĠĠĠ Ġ// Ġchart . spin ( 2 0 0 0 , Ġ 0 , Ġ 3 6 0 ); ĊĠĠĠ Ġval Ġl Ġ= Ġchart . legend ĊĠĠĠ Ġl . vertical Alignment Ġ= ĠLegend . Legend Vertical Alignment . TOP ĊĠĠĠ Ġl . horizontal Alignment Ġ= ĠLegend . Legend Horizontal Alignment . RIGHT ĊĠĠĠ Ġl . orientation Ġ= ĠLegend . Legend Orientation . VERTICAL ĊĠĠĠ Ġl . set Draw Inside ( false ) ĊĠĠĠ Ġl . x Entry Space Ġ= Ġ 7 f ĊĠĠĠ Ġl . y Entry Space Ġ= Ġ 0 f ĊĠĠĠ Ġl . y Offset Ġ= Ġ 0 f ĊĊĠĠĠ Ġ// Ġentry Ġlabel Ġstyling ĊĠĠĠ Ġchart . set Entry Label Color ( Color . WHITE ) ĊĠĠĠ Ġchart . set Entry Label Text Size ( 1 2 f ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠsetData ( count : ĠInt , Ġrange : ĠFloat ) Ġ{ ĊĠĠĠ Ġval Ġentries Ġ= ĠArrayList < Pie Entry >() ĊĊĠĠĠ Ġ// ĠNOTE : ĠThe Ġorder Ġof Ġthe Ġentries Ġwhen Ġbeing Ġadded Ġto Ġthe Ġentries Ġarray Ġdetermines Ġtheir ĊĠĠĠ Ġ// Ġposition Ġaround Ġthe Ġcenter Ġof ĊĠĠĠ Ġ// Ġthe Ġchart . ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcount ) Ġ{ ĊĠĠĠĠĠ Ġentries . add ( ĊĠĠĠĠĠĠĠĠĠ ĠP ie Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( Math . random () Ġ* Ġrange Ġ+ Ġrange Ġ/ Ġ 5 ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparties [ i Ġ% Ġparties . size ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResources Compat . get Drawable ( resources , ĠR . drawable . star , Ġtheme ))) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval ĠdataSet Ġ= ĠP ie DataSet ( entries , Ġ" E lection ĠResults ") ĊĠĠĠ ĠdataSet . set Draw Icons ( false ) ĊĠĠĠ ĠdataSet . slice Space Ġ= Ġ 3 f ĊĠĠĠ ĠdataSet . icons Offset Ġ= ĠMP PointF ( 0 f , Ġ 4 0 f ) ĊĠĠĠ ĠdataSet . selection Shift Ġ= Ġ 5 f ĊĊĠĠĠ Ġ// Ġadd Ġa Ġlot Ġof Ġcolors ĊĠĠĠ Ġval Ġcolors Ġ= ĠArrayList < Int >() ĊĠĠĠ Ġfor Ġ( c Ġin ĠColor Template . V OR DIP LO M _ COLORS ) Ġcolors . add ( c ) ĊĠĠĠ Ġfor Ġ( c Ġin ĠColor Template . JOY FUL _ COLORS ) Ġcolors . add ( c ) ĊĠĠĠ Ġfor Ġ( c Ġin ĠColor Template . COLOR FUL _ COLORS ) Ġcolors . add ( c ) ĊĠĠĠ Ġfor Ġ( c Ġin ĠColor Template . LIB ERTY _ COLORS ) Ġcolors . add ( c ) ĊĠĠĠ Ġfor Ġ( c Ġin ĠColor Template . P AST EL _ COLORS ) Ġcolors . add ( c ) ĊĠĠĠ Ġcolors . add ( holo Blue ) ĊĠĠĠ ĠdataSet . colors Ġ= Ġcolors ĊĠĠĠ Ġ// ĠdataSet . setSelection Shift ( 0 f ); ĊĠĠĠ Ġval Ġdata Ġ= ĠP ie Data ( data Set ) ĊĠĠĠ Ġdata . setValue Formatter ( Percent Formatter ()) ĊĠĠĠ Ġdata . setValue Text Size ( 1 1 f ) ĊĠĠĠ Ġdata . setValue TextColor ( Color . WHITE ) ĊĠĠĠ Ġchart . data Ġ= Ġdata ĊĊĠĠĠ Ġ// Ġundo Ġall Ġhighlight s ĊĠĠĠ Ġchart . highlight Values ( null ) ĊĠĠĠ Ġchart . invalidate () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠ Ġmenu Inflater . inflate ( R . menu . pie , Ġmenu ) ĊĠĠĠ Ġreturn Ġtrue ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠ ĠR . id . view Github Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠ Ġi . data Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// github . com / Phil J ay / MP Android Chart / blob / master / MP Chart Example / src / com / xx mass developer / mp chart example / Pie Chart Activity . java ") ĊĠĠĠĠĠĠĠ ĠstartActivity ( i ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Toggle Values Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( set Ġin Ġchart . data !!. data Sets ) Ġset . set Draw Values (! set . is Draw Values Enabled ) ĊĠĠĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Toggle Icons Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( set Ġin Ġchart . data !!. data Sets ) Ġset . set Draw Icons (! set . is Draw Icons Enabled ) ĊĠĠĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Toggle Hole Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġchart . is Draw Hole Enabled Ġ= Ġ! chart . is Draw Hole Enabled ĊĠĠĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Toggle Min Angles Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( chart . min Angle For S lices Ġ== Ġ 0 f ) Ġchart . min Angle For S lices Ġ= Ġ 3 6 f ĊĠĠĠĠĠĠĠ Ġelse Ġchart . min Angle For S lices Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġchart . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Toggle Cur ved S lices Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġto Set Ġ= Ġ! chart . is Draw Rounded S lices Enabled Ġ|| Ġ! chart . is Draw Hole Enabled ĊĠĠĠĠĠĠĠ Ġchart . set Draw Rounded S lices ( toSet ) ĊĠĠĠĠĠĠĠ Ġif Ġ( toSet Ġ&& Ġ! chart . is Draw Hole Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġchart . is Draw Hole Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( toSet Ġ&& Ġchart . is Draw S lices Under Hole Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġchart . set Draw S lices Under Hole ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Draw Center Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġchart . set Draw Center Text (! chart . is Draw Center Text Enabled ) ĊĠĠĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Toggle X Values Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġchart . set Draw Entry Labels (! chart . is Draw Entry Labels Enabled ) ĊĠĠĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Toggle Percent Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġchart . set Use Percent Values (! chart . is Use Percent Values Enabled ) ĊĠĠĠĠĠĠĠ Ġchart . invalidate () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . animate X Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġchart . animate X ( 1 4 0 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . animate Y Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġchart . animate Y ( 1 4 0 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . animate XY Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġchart . animate XY ( 1 4 0 0 , Ġ 1 4 0 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Toggle Spin Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġchart . spin ( 1 0 0 0 , Ġchart . rotation Angle , Ġchart . rotation Angle Ġ+ Ġ 3 6 0 , ĠE ase InOut Cubic ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . action Save Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Context Compat . check Self Permission ( this , ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ) Ġ== ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġsave To Gallery () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġrequest Storage Permission ( chart !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġtrue ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Progress Changed ( seek Bar : ĠSeek Bar , Ġprogress : ĠInt , Ġfrom User : ĠBoolean ) Ġ{ ĊĠĠĠ Ġtv X !!. text Ġ= Ġseek Bar X !!. progress . toString () ĊĠĠĠ Ġtv Y !!. text Ġ= Ġseek Bar Y !!. progress . toString () ĊĠĠĠ ĠsetData ( seek Bar X !!. progress , Ġseek Bar Y !!. progress . toFloat ()) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġsave To Gallery () Ġ{ ĊĠĠĠ Ġsave To Gallery ( chart !! , Ġ" Pie Chart Activity ") ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġgenerate Center Sp ann able Text (): ĠSp ann able String Ġ{ ĊĠĠĠ Ġval Ġs Ġ= ĠSp ann able String (" MP Android Chart \ n develop ed Ġby ĠPhil ipp ĠJ ah oda ") ĊĠĠĠ Ġs . set Span ( Relative Size Span ( 1 . 7 f ), Ġ 0 , Ġ 1 4 , Ġ 0 ) ĊĠĠĠ Ġs . set Span ( Style Span ( Type face . NORMAL ), Ġ 1 4 , Ġs . length Ġ- Ġ 1 5 , Ġ 0 ) ĊĠĠĠ Ġs . set Span ( ForegroundColor Span ( Color . GRAY ), Ġ 1 4 , Ġs . length Ġ- Ġ 1 5 , Ġ 0 ) ĊĠĠĠ Ġs . set Span ( Relative Size Span (. 8 f ), Ġ 1 4 , Ġs . length Ġ- Ġ 1 5 , Ġ 0 ) ĊĠĠĠ Ġs . set Span ( Style Span ( Type face . ITAL IC ), Ġs . length Ġ- Ġ 1 4 , Ġs . length , Ġ 0 ) ĊĠĠĠ Ġs . set Span ( ForegroundColor Span ( holo Blue ), Ġs . length Ġ- Ġ 1 4 , Ġs . length , Ġ 0 ) ĊĠĠĠ Ġreturn Ġs ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Value Selected ( e : ĠEntry ?, Ġh : ĠHighlight ?) Ġ{ ĊĠĠĠ Ġif Ġ( e Ġ== Ġnull Ġ|| Ġh Ġ== Ġnull ) Ġreturn ĊĠĠĠ ĠLog . i ( ĊĠĠĠĠĠĠĠ Ġ" VAL ĠSELECT ED ", Ġ" Value : Ġ" Ġ+ Ġe . y Ġ+ Ġ", Ġindex : Ġ" Ġ+ Ġh . x Ġ+ Ġ", ĠDataSet Ġindex : Ġ" Ġ+ Ġh . data Set Index ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Nothing Selected () Ġ{ ĊĠĠĠ ĠLog . i (" Pie Chart ", Ġ" nothing Ġselected ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonStart Tracking Touch ( seek Bar : ĠSeek Bar ) Ġ{} ĊĠ Ġoverride Ġfun Ġon Stop Tracking Touch ( seek Bar : ĠSeek Bar ) Ġ{} Ċ } Ċ