How To Draw The Bar Graph In Android Programatically?
can any body hep drawing the bar graph in android according to the data on x and y axis
Solution 1:
charts4j Is another good chart API. It uses the Google charts server to generate the charts and returns them to you as an image.
Solution 2:
I think this librairy can help you : achartengine
Solution 3:
I've successfully used AndroidPlot in the past for doing line graphs, but they also support bar graphs. You could give that a shot.
Solution 4:
publicclassBarchartsampleActivityextendsActivity {
/** Called when the activity is first created. */static XYMultipleSeriesDataset dataset;
static XYMultipleSeriesRenderer renderer;
static XYSeriesRenderer rendererSeries;
static CategorySeries series;
static GraphicalView mChartView;
String xvalstring1,xvalstring2,xvalstring3,xvalstring4,xvalstring5;
int xvalint1,xvalint2,xvalint3,xvalint4,xvalint5;
publicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayoutlayout= (LinearLayout) findViewById(R.id.linearlayout);
Intent intent=getIntent();
xvalstring1=intent.getStringExtra("xvalstring1").toString().trim();
xvalstring2=intent.getStringExtra("xvalstring2").toString().trim();
xvalstring3=intent.getStringExtra("xvalstring3").toString().trim();
xvalstring4=intent.getStringExtra("xvalstring4").toString().trim();
xvalstring5=intent.getStringExtra("xvalstring5").toString().trim();
xvalint1=Integer.parseInt(xvalstring1);
xvalint2=Integer.parseInt(xvalstring2);
xvalint3=Integer.parseInt(xvalstring3);
xvalint4=Integer.parseInt(xvalstring4);
xvalint5=Integer.parseInt(xvalstring5);
String[] titles = newString[] { "USER INPUTS" };
List<double[]> x = newArrayList<double[]>();
x.add(newdouble[] { 1, 2, 3, 4, 5});
List<double[]> values = newArrayList<double[]>();
values
.add(newdouble[] { xvalint1,xvalint2,xvalint3,xvalint4,xvalint5 });
dataset = newXYMultipleSeriesDataset();
renderer = newXYMultipleSeriesRenderer();
renderer.setChartTitle("USER INPUTS");
renderer.setXTitle("X");
renderer.setYTitle("Y");
renderer.setXLabelsAlign(Align.RIGHT);
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setXAxisMin(0);
renderer.setXAxisMax(10);
renderer.setYAxisMin(0);
renderer.setYAxisMax(40);
renderer.setClickEnabled(false);
renderer.setExternalZoomEnabled(false);
renderer.setZoomButtonsVisible(true);
renderer.setPanLimits(newdouble[] { 0,5,0,100 });
renderer.setZoomLimits(newdouble[] { -10, 20, -10, 40 });
renderer.setShowGrid(true);
/*renderer.setPanEnabled(false, false);
renderer.setZoomEnabled(false, false);*/
renderer.setBarSpacing(1.5);
renderer.setLabelsColor(Color.BLUE);
renderer.setAxisTitleTextSize(16);
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setMargins(newint[] {20, 30, 15, 20});
renderer.setBackgroundColor(Color.GREEN);
renderer.setMarginsColor(Color.GREEN);
rendererSeries = newXYSeriesRenderer();
rendererSeries.setColor(Color.GREEN);
rendererSeries.setDisplayChartValues(true);
renderer.addSeriesRenderer(rendererSeries);
if (mChartView == null) {
Log.d("Oncreate ", "if (mChartView == null)");
mChartView = ChartFactory.getBarChartView(this, mDataset(titles,
x, values), renderer, Type.DEFAULT);
layout.addView(mChartView, newLayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
} else {
// mChartView.repaint();
Log.d("Oncreate ", "if (mChartView != null)");
}
}
private XYMultipleSeriesDataset mDataset(String[] titles,
List<double[]> xValues, List<double[]> yValues) {
// TODO Auto-generated method stubXYMultipleSeriesDatasetdataset1=newXYMultipleSeriesDataset();
addXYSeries(dataset1, titles, xValues, yValues, 0);
return dataset1;
}
privatevoidaddXYSeries(XYMultipleSeriesDataset dataset, String[] titles,
List<double[]> xValues, List<double[]> yValues, int scale) {
// TODO Auto-generated method stubintlength= titles.length;
for (inti=0; i < length; i++) {
XYSeriesseries=newXYSeries(titles[i], scale);
double[] xV = xValues.get(i);
double[] yV = yValues.get(i);
intseriesLength= xV.length;
for (intk=0; k < seriesLength; k++) {
series.add(xV[k], yV[k]);
}
dataset.addSeries(series);
}
}
}
Post a Comment for "How To Draw The Bar Graph In Android Programatically?"