2017-12-24 28 views
0

棒グラフを使用してシングルバーの宗教値を表示しているMPAndroidチャートライブラリに取り組んでいます。私は "イスラム教" =緑、 "キリスト教" =青色などの宗教名ごとに各BarEntryに色を付けたいと思います。私はこのフォーラムで多くの例を検索しましたが、これを解決することはできません。棒グラフバーのカスタムカラーセットMPAndroidライブラリ

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)); 

私はこのライブラリのリンクを使用しています:

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

enter image description here

私はこの絵の下の色のようなバーの色をしたいです。どうすればこの問題を解決できますか?

答えて

1

あなたは次のようにあなたのcolors.xmlファイルで色を定義する必要があります。

<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> 

はまた、上記のコードでは、あなたのそれぞれのカラーコードを提供しています。あなたは次のようにこれらの色についてbardatasetを伝える必要がありその後

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

これはちょうどあなたがバーのデータセットに値を与えるされた順序で色の順番を与える仕事を行います。

関連する問題