Skip to content Skip to sidebar Skip to footer

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?"