2011-07-06 42 views
5

我下面an example in this link和 創建一個類,如下的Android achartengine簡單餅圖

public class aChartExample { 

    public Intent execute(Context context) { 
     int[] colors = new int[] { Color.RED, Color.YELLOW, Color.BLUE }; 
     DefaultRenderer renderer = buildCategoryRenderer(colors); 

     CategorySeries categorySeries = new CategorySeries("Vehicles Chart"); 
     categorySeries.add("cars ", 30); 
     categorySeries.add("trucks", 20); 
     categorySeries.add("bikes ", 60); 

     return ChartFactory.getPieChartIntent(context, categorySeries, renderer, null); 
    } 

    protected DefaultRenderer buildCategoryRenderer(int[] colors) { 
     DefaultRenderer renderer = new DefaultRenderer(); 
     for (int color : colors) { 
      SimpleSeriesRenderer r = new SimpleSeriesRenderer(); 
      r.setColor(color); 
      renderer.addSeriesRenderer(r); 
     } 
     return renderer; 
    } 
} 

,當我的應用程序上在OnCreate我開始活動開始我打電話吧。

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.mainpage); 

    Intent achartIntent = new aChartExample().execute(this); 
    startActivity(achartIntent); 
} 

然後我在我的項目中包含了achartengine-0.6.0.jar。

當我運行應用程序時,它在startActivity行崩潰。

不知道該從哪裏出發。

+0

你的例子非常簡單和有用。謝謝。 :) – Enrichman

回答

11

你在AndroidManifest.xml中添加了這行嗎?如果是這樣,你可以發佈錯誤消息,我在2天前嘗試了相同的例子,併爲我工作。

<activity android:name="org.achartengine.GraphicalActivity"> 
+0

它仍然給我錯誤 - java.lang.NoClassDefFoundError:org.achartengine.renderer.DefaultRenderer。該怎麼辦? –

+0

K我解決了它...以前沒有添加jar文件.. –

0

startActivity只需要活動。不適用於所有課程。

0

final CategorySeries series = new CategorySeries(「pie」);

 for (int i = 0; i < Xaxes_value.size(); i++) { 
      series.add(Xaxes_value.get(i) + "", 
        Long.parseLong(yaxes_value.get(i))); 
     } 


    List<Integer> colors = new ArrayList<Integer>(); 
    int[] colorr = { Color.parseColor("#56ADDB"), 
      Color.parseColor("#F59331"), Color.parseColor("#73C83C"), 
      Color.parseColor("#948D8B"), Color.parseColor("#E54273"), 
      Color.parseColor("#FFD34E"), Color.parseColor("#2A86D6"), 
      Color.parseColor("#00BFC0"), Color.parseColor("#95AC5F"), 
      Color.parseColor("#FF8497") }; 

    for (int i = 0; i < yaxes_value.size(); i++) { 
     colors.add(colorr[i]); 

    } 
    renderer = new DefaultRenderer(); 
    for (int color = 0; color < colors.size(); color++) { 
     SimpleSeriesRenderer r = new SimpleSeriesRenderer(); 
     r.setColor(colors.get(color)); 
     r.setDisplayBoundingPoints(false); 
     // r.setDisplayChartValuesDistance(20); 
     r.setDisplayChartValues(false); 
     r.setChartValuesTextSize(18); 
     r.setStroke(BasicStroke.SOLID); 
     renderer.addSeriesRenderer(r); 
    } 
    // renderer.isInScroll(); 

    renderer.setZoomEnabled(false); 
    renderer.setPanEnabled(false); 
    renderer.setZoomButtonsVisible(false); // set zoom button in Graph 
    renderer.setApplyBackgroundColor(false); 
    renderer.setBackgroundColor(Color.WHITE); // set background color 
    renderer.setChartTitle("Pie Chart"); 
    renderer.setLabelsColor(Color.BLACK); 
    renderer.setMargins(new int[] { 20, 100, 20, 15 }); 
    renderer.setLabelsTextSize(20); 
    renderer.setChartTitleTextSize((float) 30); 
    renderer.setShowLabels(false); 
    renderer.setLegendTextSize(25); 
    renderer.setDisplayValues(true); 
    renderer.setStartAngle(90); 
    GraphicalView mChart = ChartFactory.getPieChartView(getApplicationContext(), series, 
      renderer); 

    layout_graph.addView(mChart);