33
44import android .graphics .Color ;
55import android .os .Bundle ;
6+ import android .view .Menu ;
7+ import android .view .MenuItem ;
68import android .view .WindowManager ;
79
810import com .github .mikephil .charting .charts .CombinedChart ;
1618import com .github .mikephil .charting .data .CandleDataSet ;
1719import com .github .mikephil .charting .data .CandleEntry ;
1820import com .github .mikephil .charting .data .CombinedData ;
21+ import com .github .mikephil .charting .data .DataSet ;
1922import com .github .mikephil .charting .data .Entry ;
2023import com .github .mikephil .charting .data .LineData ;
2124import com .github .mikephil .charting .data .LineDataSet ;
@@ -29,6 +32,8 @@ public class CombinedChartActivity extends DemoBase {
2932
3033 private CombinedChart mChart ;
3134 private final int itemcount = 12 ;
35+ private final int maxYLeft = 40 ;
36+ private final int maxYRight = 60 ;
3237
3338 @ Override
3439 protected void onCreate (Bundle savedInstanceState ) {
@@ -40,13 +45,15 @@ protected void onCreate(Bundle savedInstanceState) {
4045 mChart = (CombinedChart ) findViewById (R .id .chart1 );
4146 mChart .setDescription ("" );
4247 mChart .setDrawGridBackground (false );
43-
48+
4449 YAxis rightAxis = mChart .getAxisRight ();
4550 rightAxis .setDrawGridLines (false );
46-
51+ rightAxis .setAxisMaxValue (maxYRight );
52+
4753 YAxis leftAxis = mChart .getAxisLeft ();
4854 leftAxis .setDrawGridLines (false );
49-
55+ leftAxis .setAxisMaxValue (maxYLeft );
56+
5057 XAxis xAxis = mChart .getXAxis ();
5158 xAxis .setPosition (XAxisPosition .BOTH_SIDED );
5259
@@ -67,8 +74,9 @@ private LineData generateLineData() {
6774
6875 ArrayList <Entry > entries = new ArrayList <Entry >();
6976
77+ int minValue = 5 ;
7078 for (int index = 0 ; index < itemcount ; index ++)
71- entries .add (new Entry (getRandom (15 , 10 ), index ));
79+ entries .add (new Entry (getRandom (maxYLeft - minValue , minValue ), index ));
7280
7381 LineDataSet set = new LineDataSet (entries , "Line DataSet" );
7482 set .setColor (Color .rgb (240 , 238 , 70 ));
@@ -77,9 +85,12 @@ private LineData generateLineData() {
7785 set .setCircleSize (5f );
7886 set .setFillColor (Color .rgb (240 , 238 , 70 ));
7987 set .setDrawCubic (true );
80- set .setDrawValues (false );
88+ set .setDrawValues (true );
89+
90+ set .setAxisDependency (YAxis .AxisDependency .LEFT );
91+
8192 d .addDataSet (set );
82-
93+
8394 return d ;
8495 }
8596
@@ -89,16 +100,19 @@ private BarData generateBarData() {
89100
90101 ArrayList <BarEntry > entries = new ArrayList <BarEntry >();
91102
103+ int minValue = 20 ;
92104 for (int index = 0 ; index < itemcount ; index ++)
93- entries .add (new BarEntry (getRandom (15 , 30 ), index ));
105+ entries .add (new BarEntry (getRandom (maxYRight - minValue , minValue ), index ));
94106
95107 BarDataSet set = new BarDataSet (entries , "Bar DataSet" );
96108 set .setColor (Color .rgb (60 , 220 , 78 ));
97109 d .addDataSet (set );
98110
111+ set .setAxisDependency (YAxis .AxisDependency .RIGHT );
112+
99113 return d ;
100114 }
101-
115+
102116 private ScatterData generateScatterData () {
103117
104118 ScatterData d = new ScatterData ();
@@ -116,7 +130,7 @@ private ScatterData generateScatterData() {
116130
117131 return d ;
118132 }
119-
133+
120134 private CandleData generateCandleData () {
121135
122136 CandleData d = new CandleData ();
@@ -138,4 +152,57 @@ private CandleData generateCandleData() {
138152 private float getRandom (float range , float startsfrom ) {
139153 return (float ) (Math .random () * range ) + startsfrom ;
140154 }
155+
156+ @ Override
157+ public boolean onCreateOptionsMenu (Menu menu ) {
158+ getMenuInflater ().inflate (R .menu .combined , menu );
159+ return true ;
160+ }
161+
162+ @ Override
163+ public boolean onOptionsItemSelected (MenuItem item ) {
164+ switch (item .getItemId ()) {
165+ case R .id .actionToggleLineValues : {
166+ for (DataSet <?> set : mChart .getData ().getDataSets ()) {
167+ if (set instanceof LineDataSet )
168+ set .setDrawValues (!set .isDrawValuesEnabled ());
169+ }
170+
171+ mChart .invalidate ();
172+ break ;
173+ }
174+ case R .id .actionToggleBarValues : {
175+ for (DataSet <?> set : mChart .getData ().getDataSets ()) {
176+ if (set instanceof BarDataSet )
177+ set .setDrawValues (!set .isDrawValuesEnabled ());
178+ }
179+
180+ mChart .invalidate ();
181+ break ;
182+ }
183+ case R .id .actionToggleBarYDependency : {
184+ for (DataSet <?> set : mChart .getData ().getDataSets ()) {
185+ if (set instanceof BarDataSet ) {
186+ YAxis .AxisDependency newAxisDependency = set .getAxisDependency ().equals (YAxis .AxisDependency .LEFT ) ? YAxis .AxisDependency .RIGHT : YAxis .AxisDependency .LEFT ;
187+ set .setAxisDependency (newAxisDependency );
188+ }
189+ }
190+
191+ mChart .invalidate ();
192+ break ;
193+ }
194+ case R .id .actionToggleLineYDependency : {
195+ for (DataSet <?> set : mChart .getData ().getDataSets ()) {
196+ if (set instanceof LineDataSet ) {
197+ YAxis .AxisDependency newAxisDependency = set .getAxisDependency ().equals (YAxis .AxisDependency .LEFT ) ? YAxis .AxisDependency .RIGHT : YAxis .AxisDependency .LEFT ;
198+ set .setAxisDependency (newAxisDependency );
199+ }
200+ }
201+
202+ mChart .invalidate ();
203+ break ;
204+ }
205+ }
206+ return true ;
207+ }
141208}
0 commit comments