Advertisement
Guest User

Untitled

a guest
Apr 15th, 2014
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.09 KB | None | 0 0
  1. package com.example.dynamicbargraph;
  2.  
  3. import org.achartengine.GraphicalView;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.widget.LinearLayout;
  7. import android.app.Activity;
  8.  
  9. public class MainActivity extends Activity {
  10.  
  11. private BarGraph bar = new BarGraph();
  12. private GraphicalView barView;
  13.  
  14.  
  15. @Override
  16. protected void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.activity_main);
  19.  
  20. //bar graph view initialize
  21. barView = bar.getBarView(this);
  22. LinearLayout barLayout = (LinearLayout) findViewById(R.id.barchart);
  23. barLayout.addView(barView);
  24.  
  25.  
  26. }
  27.  
  28. public void buttonHandler(View view)
  29. {
  30. LinearLayout barLayout = (LinearLayout) findViewById(R.id.barchart);
  31. barLayout.removeView(barView);
  32. bar.staticPlot();
  33. barView.repaint();
  34. }
  35.  
  36. }
  37.  
  38. package com.example.dynamicbargraph;
  39.  
  40. import org.achartengine.ChartFactory;
  41. import org.achartengine.GraphicalView;
  42. import org.achartengine.chart.BarChart.Type;
  43. import org.achartengine.model.CategorySeries;
  44. import org.achartengine.model.XYMultipleSeriesDataset;
  45. import org.achartengine.renderer.XYMultipleSeriesRenderer;
  46. import org.achartengine.renderer.XYSeriesRenderer;
  47. import android.content.Context;
  48. import android.graphics.Color;
  49.  
  50.  
  51. public class BarGraph {
  52.  
  53. private GraphicalView view;
  54.  
  55. private CategorySeries series = new CategorySeries("Accelerometer");
  56. private XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
  57. private XYSeriesRenderer renderer = new XYSeriesRenderer(); //used for customizing
  58. private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
  59.  
  60.  
  61. @SuppressWarnings("deprecation")
  62. public BarGraph()
  63. {
  64.  
  65.  
  66. int[] y ={1,2,3,4,5,6,7,8,9,10};
  67.  
  68. for (int i = 0; i < 10; i++)
  69. {
  70. series.add("Bar" + (i+1), y[i]);
  71. }
  72.  
  73.  
  74. dataset.addSeries(series.toXYSeries());
  75.  
  76.  
  77. //below are just customization codes
  78. renderer.setChartValuesSpacing((float) 0.5);
  79. renderer.setColor(Color.GRAY);
  80.  
  81.  
  82. mRenderer.addSeriesRenderer(renderer);
  83. mRenderer.setChartTitle("Arm Steadiness From Device");
  84. mRenderer.setXTitle("Frequency (Hz)");
  85. mRenderer.setYTitle("Magnitude");
  86.  
  87. float textSize = 30, textSmaller = 20, angle = 270;
  88. mRenderer.setAxisTitleTextSize(textSize);
  89. mRenderer.setYLabelsAngle(angle);
  90. mRenderer.setLabelsTextSize(textSize);
  91. mRenderer.setChartValuesTextSize(textSize);
  92. mRenderer.setLegendTextSize(textSmaller);
  93. mRenderer.setChartTitleTextSize(textSize);
  94. mRenderer.setAxesColor(Color.YELLOW);
  95. mRenderer.setGridColor(Color.YELLOW);
  96. mRenderer.setLabelsColor(Color.rgb(112, 128, 144));
  97.  
  98. //adjusting margin width of y-axis (so y axis labels can be seen)
  99. int[] i = mRenderer.getMargins();
  100. i[0] += 50;//top
  101. i[1] += 50;//left (increment here)
  102. //i[2] = 0;//bottom
  103. //i[3] = 0;//right
  104. mRenderer.setMargins(i);
  105. }
  106.  
  107. public GraphicalView getBarView(Context context)
  108. {
  109. view = ChartFactory.getBarChartView(context, dataset, mRenderer, Type.DEFAULT);
  110. return view;
  111. }
  112.  
  113. public void staticPlot()
  114. {
  115. int[] y ={10,9,8,7,6,5,4,3,2,1};
  116.  
  117. for (int i = 0; i < 10; i++)
  118. {
  119. series.add("Bar" + (i+1), y[i]);
  120. }
  121. }
  122. }
  123.  
  124. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  125. xmlns:tools="http://schemas.android.com/tools"
  126. android:layout_width="match_parent"
  127. android:layout_height="match_parent"
  128. android:background="#000000"
  129. android:paddingBottom="@dimen/activity_vertical_margin"
  130. android:paddingLeft="@dimen/activity_horizontal_margin"
  131. android:paddingRight="@dimen/activity_horizontal_margin"
  132. android:paddingTop="@dimen/activity_vertical_margin"
  133. tools:context=".MainActivity" >
  134.  
  135. <LinearLayout
  136. android:id="@+id/barchart"
  137. android:layout_width="fill_parent"
  138. android:layout_height="400dp"
  139. android:orientation="vertical" />
  140.  
  141. <Button
  142. android:id="@+id/button1"
  143. android:layout_width="wrap_content"
  144. android:layout_height="wrap_content"
  145. android:layout_alignParentBottom="true"
  146. android:layout_centerHorizontal="true"
  147. android:onClick="buttonHandler"
  148. android:text="@string/hello_world" />
  149.  
  150. </RelativeLayout>
  151.  
  152. public void buttonHandler(View view)
  153. {
  154. LinearLayout barLayout = (LinearLayout) findViewById(R.id.barchart);
  155. barLayout.removeView(barView);
  156. bar.staticPlot();
  157.  
  158. barView = bar.getBarView(this); //Grab the newest graph
  159.  
  160. barLayout.addView(barView);
  161. barView.repaint();
  162. }
  163.  
  164. public void staticPlot() {
  165.  
  166. dataset = new XYMultipleSeriesDataset(); //Clear the previous dataset (maybe there is a remove instead?)
  167.  
  168. int[] y = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
  169. series.clear(); //Clear your previous values
  170.  
  171. for (int i = 0; i < 10; i++) {
  172. series.add("Bar" + (i + 1), y[i]);
  173. }
  174.  
  175. dataset.addSeries(series.toXYSeries()); //Readd to dataset
  176. }
  177.  
  178. public void buttonHandler(View view) {
  179. if(bar != null) {
  180. //LinearLayout barLayout = (LinearLayout) findViewById(R.id.barchart);
  181. //barLayout.removeView(barView);
  182. bar.staticPlot();
  183. bar.repaint();
  184. }
  185. }
  186.  
  187. public void staticPlot() {
  188. int[] y ={ 10,9,8,7,6,5,4,3,2,1 };
  189. for (int i = 0; i < 10; i++) series.add("Bar" + (i+1), y[i]);
  190. // dataset = new XYMultipleSeriesDataset(); <--- You may want to create a new dataset if you're not going to create a new series
  191. dataset.addSeries(series.toXYSeries());
  192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement