我正在使用MPAndroid图表库,我正在使用条形图显示单个条形宗教值。我想根据宗教名称为每个BarEntry提供一种颜色,例如" Islam" =绿色,"基督教" =蓝色等我在这个论坛上搜索了很多例子但是无法解决这个问题。
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'
我希望这张照片中的条形颜色像底色。我该如何解决这个问题?
答案 0 :(得分: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());
这将完成工作,只需按照为条形数据集赋予值的顺序给出颜色顺序。