2017-12-24 9 views
0

Ich arbeite an MPAndroid-Diagramm-Bibliothek, wo ich einzelne Balken Religion Werte mit Balkendiagramm anzeigen. Ich möchte jedem Bareintrag eine Farbe geben, wie zB "Islam" = grün, "Christentum" = Blau usw. Ich habe viele Beispiele in diesem Forum gesucht, aber nicht in der Lage, dies zu lösen.Benutzerdefinierte Farben auf Balkendiagramm-Leiste MPAndroid-Bibliothek

List<BarEntry> entries = new ArrayList<>(); 
    entries.add(new BarEntry(0f, 20,"Islam")); 
    entries.add(new BarEntry(1f, 20,"Christianity")); 
    entries.add(new BarEntry(2f, 20,"Judaism")); 
    entries.add(new BarEntry(3f,20,"Sikhism")); 
    entries.add(new BarEntry(4f,20,"Hinduism")); 

    BarDataSet bSet = new BarDataSet(entries, "Marks"); 
    bSet.setColors(ColorTemplate.VORDIPLOM_COLORS); 

    ArrayList<String> barFactors = new ArrayList<>(); 
    barFactors.add("Islam"); 
    barFactors.add("Christianity"); 
    barFactors.add("Judaism"); 
    barFactors.add("Sikhism"); 
    barFactors.add("Hinduism"); 


    XAxis xAxis = chart.getXAxis(); 
    xAxis.setGranularity(1f); 
    xAxis.setGranularityEnabled(true); 
    BarData data = new BarData(bSet); 
    data.setBarWidth(1f); // set custom bar width 
    data.setValueTextSize(12); 
    Description description = new Description(); 
    description.setTextColor(R.color.colorPrimary); 
    description.setText("Religion analysis"); 
    chart.setDescription(description); 
    chart.setData(data); 
    chart.setFitBars(true); // make the x-axis fit exactly all bars 
    chart.invalidate(); // refresh 
    chart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(barFactors)); 

Ich bin mit dieser Bibliothek Link:

implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3' 

enter image description here

Ich möchte bar Farben wie unten Farben in diesem Bild. Wie kann ich dieses Problem lösen?

Antwort

1

Sie benötigen Farben in Ihrer Datei Colors.xml wie folgt zu definieren:

<color name="Islam">#1abc9c</color> 
<color name="Christianity">#2ecc71</color> 
<color name="Judaism">#3498db</color> 
<color name="Sikhism">#9b59b6</color> 
<color name="Hinduism">#16a085</color> 

auch Ihre jeweiligen Farbcodes in obigem Code bereitzustellen.

Danach müssen Sie bardataset über diese Farben wie folgt erklären:

barDataSet.setColors(new int[] 
      { 
        R.color.Islam, R.color.Christianity, R.color.Judaism, 
        R.color.Sikhism, R.color.Hinduism 
      }, getContext()); 

Das die Arbeit erledigen wird nur die Reihenfolge der Farben geben in einer Reihenfolge, in der Werte geben Dataset zu sperren.

Verwandte Themen