在Android中制作同心饼图

时间:2013-12-13 06:21:52

标签: android graph android-canvas achartengine android-graphview

今天我在使用Android Pro-gramically绘制图表时遇到了一个问题。我正在使用Achartengine图库来实现这一点,我已经完成了简单的饼图,但我不知道如何使用它制作同心饼图。

这是我想要制作的图形图像。

Thanx提前帮助:) enter image description here

3 个答案:

答案 0 :(得分:3)

以下是示例,首先在LinearLayout中创建view(xml)并在activity中获取SingleDonutGraph以通过donut graph类来绘制graphValues[]在此布局上。您还必须将LayoutToDisplayChartLeftGraph = (LinearLayout) findViewById(R.id.right_graph_for_punch_count); Intent achartIntentLeft = new SingleDonutGraph().execute(TabletPunchCountActivity.this, LayoutToDisplayChartLeftGraph,graphValues); 作为双数组传递(您必须在圆环图上设置的值)。

SingleDonutGraph.java

然后使用此课程public class SingleDonutGraph { private GraphicalView mChartView2; static int count = 3; int[] Mycolors = new int[] { Color.parseColor("#F2846B"), Color.parseColor("#A01115"), Color.parseColor("#741E1E") }; String[] labels = { "TODAY", "AVERAGE", "TOTAL" }; public Intent execute(Context context, LinearLayout parent,double values[]) { parent.removeAllViews(); int[] colors = new int[count]; for (int i = 0; i < count; i++) { colors[i] = Mycolors[i]; } DefaultRenderer renderer = buildCategoryRenderer(colors); renderer.setShowLabels(false); renderer.setBackgroundColor(Color.BLACK); renderer.setPanEnabled(false);// Disable User Interaction renderer.setScale((float) 1.4); renderer.setInScroll(true); //To avoid scroll Shrink renderer.setStartAngle(90); renderer.setShowLegend(false); MultipleCategorySeries categorySeries = new MultipleCategorySeries( "Punch Graph"); categorySeries.add(labels, values); mChartView2 = ChartFactory.getDoughnutChartView(context, categorySeries, renderer); parent.addView(mChartView2); return ChartFactory.getDoughnutChartIntent(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; } }

{{1}}

答案 1 :(得分:1)

尝试this

可能会帮助你 。谢谢!

答案 2 :(得分:0)

这两行有所不同:

  

mChartView2 = ChartFactory.getDoughnutChartView(context,               categorySeries,renderer);

parent.addView(mChartView2);

return ChartFactory.getDoughnutChartIntent(context, categorySeries,
        renderer, null);