【问题标题】:need help in integrating achart-engine with database for android在将 achart-engine 与 android 数据库集成时需要帮助
【发布时间】:2012-03-25 17:06:07
【问题描述】:

您能帮我创建一个简单的条形图(适用于 android),其中的值是从 sqlite 数据库中获取的。例如考虑下表

    year         Units Sold
    2001          2000
    2002          2100
    2003          1900

我需要创建一个条形图,其中 x 轴为 year , y 轴为 units sold 。你能把这当作一个请求吗?我不知道如何从数据库中导入数据。

【问题讨论】:

    标签: android sqlite achartengine


    【解决方案1】:

    首先,您必须从数据库中获取值并存储到具有相应数据类型的数组中。这样做......

        List<int[]> initial;
        int[] my_year;
        int[] my_units_sold;
       public void onCreate()
       {
           int Column1 = net_db_cur.getColumnIndex("Year");
           int Column2 = net_db_cur.getColumnIndex("Units Sold");
           cur = sampleDB.rawQuery("SELECT * FROM " + Table_Name , null);
           my_year = new int[columncount];
           my_units_sold = new int[columncount];
           if (cur.moveToFirst())
            {                       
                for (int i = 0; i < columncount; i++)
                {
                    my_year [i] = net_db_cur.getInt(Column1);
                    my_units_sold[i] = net_db_cur.getInt(Column2);
                    cur.moveToNext();
                }
            }
      initial = new ArrayList<int[]>();        
     initial1.add(my_year);
      initial1.add(my_units_sold);  
     ll.addView(createBarChart(initial ,Color.BLUE,10,0,14,2000000,20000000,1,x_axis_labels1,x_axis_labels2,y_axis_labels1, y_axis_net_labels2,Color.parseColor("#ffffff")));
         }
    
       public View createBarChart(int[] values,int[] colors,int lable_text_size,int xMin,int xMax,int yMin,int yMax,double bar_space,double[] x_axis_lables1,String[] x_axis_lables2,double[] y_axis_lables1,String[] y_axis_lables2, int lable_color)
        {
            XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer();   
            XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    
            /*for (int i = 0; i <values.length; i++)
            {*/
                CategorySeries series = new CategorySeries("");
                /*double[] v = values.get(i);
                int seriesLength = v.length;*/
                for (int k = 0; k < values.length; k++)
                {
                    series.add(values[k]);
    
                }
                dataset.addSeries(series.toXYSeries());
                //}  
    
                //mrenderer.setMargins(new int[] { 10, 65, 10, 15 });
                int color_length = colors.length;
                for (int i = 0; i < color_length; i++)
                 {
                    SimpleSeriesRenderer r = new SimpleSeriesRenderer();
                    r.setColor(colors[i]);
                    r.setChartValuesSpacing(15);
                    mrenderer.addSeriesRenderer(r);
                 }  
    
                mrenderer.setOrientation(Orientation.HORIZONTAL); 
                mrenderer.setInScroll(false);
                mrenderer.setGridColor(Color.BLACK);
                mrenderer.setYLabelsAlign(Align.RIGHT);         
                mrenderer.setPanEnabled(false, false);
                mrenderer.setZoomEnabled(false, false);
                mrenderer.setBarSpacing(bar_space);             
                mrenderer.setLabelsTextSize(lable_text_size);
                mrenderer.setAxesColor(Color.BLACK); 
                mrenderer.setXAxisMin(xMin);
                mrenderer.setXAxisMax(xMax);        
    
                for(int i=0;i<x_axis_lables2.length;i++)
                {
                    mrenderer.addXTextLabel(x_axis_lables1[i],x_axis_lables2[i]);
                }   
                mrenderer.setYAxisMin(yMin);
                mrenderer.setYAxisMax(yMax);       
                for(int j=0;j<y_axis_lables1.length;j++)
                {
                    mrenderer.addYTextLabel(y_axis_lables1[j],y_axis_lables2[j]);
                }
    
    
                mrenderer.setLabelsColor(lable_color);
                return (ChartFactory.getBarChartView(Income.this, dataset, mrenderer, Type.DEFAULT));   
            }
    

    您将获得带有数据库值的条形图。一切顺利。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 2012-04-26
    相关资源
    最近更新 更多