mpchart piechart:如何在android中只显示一个特定的文本值

时间:2017-06-29 06:01:26

标签: java android

我在pmchart饼图中遇到一个问题,我想只显示一个切片,完成切片的100%进度。你可以在附加图像中看到结果

enter image description here

如果我使用以下代码

 if (Float.valueOf(per)==100f){
            Toast.makeText(this, "100% completed", Toast.LENGTH_SHORT).show();
            pieChart.setDrawSliceText(false);
            dataSet.setDrawValues(false);

        }

它在100%完成时显示以下结果

enter image description here

1 个答案:

答案 0 :(得分:0)

试试这个。

piechart = (PieChart) findViewById(R.id.piechart);

piechart.setUsePercentValues(true);
ArrayList<PieEntry> yvalues = new ArrayList<PieEntry>();
// Write Your logic here.

在这里你写下你的逻辑。

for(loop upto your values of list)
{
   if(your value > 0)
   {
     yvalues.add(new PieEntry("Your value", "Your Label", 0));
   }
}

final PieDataSet dataSet = new PieDataSet(yvalues, "");
piechart.setDrawEntryLabels(true);
dataSet.setDrawValues(true);

PieData data = new PieData(dataSet);
data.setHighlightEnabled(false);
data.setValueFormatter(new PercentFormatter());
piechart.setData(data);

piechart.getDescription().setEnabled(false);
piechart.setTouchEnabled(false);
piechart.getLegend().setEnabled(false);
piechart.setClickable(false);
piechart.setRotationEnabled(false);
piechart.setDrawHoleEnabled(true);
piechart.setTransparentCircleRadius(10f);
piechart.setHoleRadius(35f);

data.setValueTextSize(13f);
data.setValueTextColor(Color.WHITE);

piechart.animateXY(1400, 1400, Easing.EasingOption.EaseInQuad, Easing.EasingOption.EaseOutQuad);
  

注意:上面的代码使用的是compile版本   &#39; com.github.PhilJay:MPAndroidChart:V3.0.2&#39;