Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.dynamicbargraph;
- import org.achartengine.GraphicalView;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.LinearLayout;
- import android.app.Activity;
- public class MainActivity extends Activity {
- private BarGraph bar = new BarGraph();
- private GraphicalView barView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //bar graph view initialize
- barView = bar.getBarView(this);
- LinearLayout barLayout = (LinearLayout) findViewById(R.id.barchart);
- barLayout.addView(barView);
- }
- public void buttonHandler(View view)
- {
- LinearLayout barLayout = (LinearLayout) findViewById(R.id.barchart);
- barLayout.removeView(barView);
- bar.staticPlot();
- barView.repaint();
- }
- }
- package com.example.dynamicbargraph;
- import org.achartengine.ChartFactory;
- import org.achartengine.GraphicalView;
- import org.achartengine.chart.BarChart.Type;
- import org.achartengine.model.CategorySeries;
- import org.achartengine.model.XYMultipleSeriesDataset;
- import org.achartengine.renderer.XYMultipleSeriesRenderer;
- import org.achartengine.renderer.XYSeriesRenderer;
- import android.content.Context;
- import android.graphics.Color;
- public class BarGraph {
- private GraphicalView view;
- private CategorySeries series = new CategorySeries("Accelerometer");
- private XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
- private XYSeriesRenderer renderer = new XYSeriesRenderer(); //used for customizing
- private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
- @SuppressWarnings("deprecation")
- public BarGraph()
- {
- int[] y ={1,2,3,4,5,6,7,8,9,10};
- for (int i = 0; i < 10; i++)
- {
- series.add("Bar" + (i+1), y[i]);
- }
- dataset.addSeries(series.toXYSeries());
- //below are just customization codes
- renderer.setChartValuesSpacing((float) 0.5);
- renderer.setColor(Color.GRAY);
- mRenderer.addSeriesRenderer(renderer);
- mRenderer.setChartTitle("Arm Steadiness From Device");
- mRenderer.setXTitle("Frequency (Hz)");
- mRenderer.setYTitle("Magnitude");
- float textSize = 30, textSmaller = 20, angle = 270;
- mRenderer.setAxisTitleTextSize(textSize);
- mRenderer.setYLabelsAngle(angle);
- mRenderer.setLabelsTextSize(textSize);
- mRenderer.setChartValuesTextSize(textSize);
- mRenderer.setLegendTextSize(textSmaller);
- mRenderer.setChartTitleTextSize(textSize);
- mRenderer.setAxesColor(Color.YELLOW);
- mRenderer.setGridColor(Color.YELLOW);
- mRenderer.setLabelsColor(Color.rgb(112, 128, 144));
- //adjusting margin width of y-axis (so y axis labels can be seen)
- int[] i = mRenderer.getMargins();
- i[0] += 50;//top
- i[1] += 50;//left (increment here)
- //i[2] = 0;//bottom
- //i[3] = 0;//right
- mRenderer.setMargins(i);
- }
- public GraphicalView getBarView(Context context)
- {
- view = ChartFactory.getBarChartView(context, dataset, mRenderer, Type.DEFAULT);
- return view;
- }
- public void staticPlot()
- {
- int[] y ={10,9,8,7,6,5,4,3,2,1};
- for (int i = 0; i < 10; i++)
- {
- series.add("Bar" + (i+1), y[i]);
- }
- }
- }
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#000000"
- android:paddingBottom="@dimen/activity_vertical_margin"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- tools:context=".MainActivity" >
- <LinearLayout
- android:id="@+id/barchart"
- android:layout_width="fill_parent"
- android:layout_height="400dp"
- android:orientation="vertical" />
- <Button
- android:id="@+id/button1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_centerHorizontal="true"
- android:onClick="buttonHandler"
- android:text="@string/hello_world" />
- </RelativeLayout>
- public void buttonHandler(View view)
- {
- LinearLayout barLayout = (LinearLayout) findViewById(R.id.barchart);
- barLayout.removeView(barView);
- bar.staticPlot();
- barView = bar.getBarView(this); //Grab the newest graph
- barLayout.addView(barView);
- barView.repaint();
- }
- public void staticPlot() {
- dataset = new XYMultipleSeriesDataset(); //Clear the previous dataset (maybe there is a remove instead?)
- int[] y = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
- series.clear(); //Clear your previous values
- for (int i = 0; i < 10; i++) {
- series.add("Bar" + (i + 1), y[i]);
- }
- dataset.addSeries(series.toXYSeries()); //Readd to dataset
- }
- public void buttonHandler(View view) {
- if(bar != null) {
- //LinearLayout barLayout = (LinearLayout) findViewById(R.id.barchart);
- //barLayout.removeView(barView);
- bar.staticPlot();
- bar.repaint();
- }
- }
- public void staticPlot() {
- int[] y ={ 10,9,8,7,6,5,4,3,2,1 };
- for (int i = 0; i < 10; i++) series.add("Bar" + (i+1), y[i]);
- // dataset = new XYMultipleSeriesDataset(); <--- You may want to create a new dataset if you're not going to create a new series
- dataset.addSeries(series.toXYSeries());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement