2

Сегодня я столкнулся с проблемой в графическом графике в Android Программически. Я использую графическую библиотеку Achartengine для достижения этого, я сделал с простой круговой диаграммой. Но я не знаю, как сделать концентрическую круговую диаграмму, используя это.Создание концентрической диаграммы крутящего момента в Android

Вот демонстрационное изображение графика, которое я хочу сделать.

Спасибо за помощь заранее :) enter image description here

+0

так что вы хотите сделать пончики graph..not Pie graph..right ?? –

+0

ohh да .. это график пончика, да, я хочу этого .. я делал это раньше, потому что я наткнулся на нить, связанную с этим ..tht war ur ... так что вы реализовали это? – GOLDEE

+0

yes..check ответ .. –

ответ

3

Вот пример, сначала создайте в вашем view(xml) в LinearLayout и получить его в activity, чтобы передать его SingleDonutGraph класс для рисования donut graph на этом layout.You также передать 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; 
} 
} 
+0

как я могу добавить текст на нем, и как я могу предоставить небольшой круговой запас b/w центрального круга и внешней диаграммы – GOLDEE

+0

Чтобы добавить текст на нем, вам нужно перейти на RelativyLayout вместо LinearLayout..try с RealativeLayout CenterInParent выровнять свойство .. –

+0

и еще одна вещь Abhijit, как я могу поставить маркерное кольцо после полого черного круга – GOLDEE

1

Попробуйте this

может б это поможет вам . Благодаря!

0

Это две линии делает разницу:

mChartView2 = ChartFactory.getDoughnutChartView (контекст, categorySeries, рендерер);

parent.addView(mChartView2); 

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