Android 如何使用Mikephil饼图删除项目中的小数点

Android 如何使用Mikephil饼图删除项目中的小数点,android,mpandroidchart,Android,Mpandroidchart,这里是整型的静态值 private int upload=14, bill=15, unbill=85, total=100, unupload=12, sign=10, unsign=90, print=12, unprint=88; 饼图的集合项 ArrayList<Entry> entries = new ArrayList<>(); entries.add(new Entry(bill, 0)); entries.add(new Entry(unbill,

这里是整型的静态值

  private int upload=14, bill=15, unbill=85, total=100, unupload=12, sign=10, unsign=90, print=12, unprint=88;
饼图的集合项

ArrayList<Entry> entries = new ArrayList<>();

entries.add(new Entry(bill, 0));
entries.add(new Entry(unbill, 1));
entries.add(new Entry(print, 2));
entries.add(new Entry(unprint, 3));
entries.add(new Entry(sign, 4));
entries.add(new Entry(unsign, 5));
entries.add(new Entry(upload, 6));
entries.add(new Entry(unupload, 7));

 int colors[] ={Color.rgb(84, 139, 221), Color.rgb(251, 249, 146),Color.rgb(151, 212, 153), Color.rgb(183, 144, 189),Color.rgb(226, 148, 188),Color.rgb(208, 189, 121),Color.rgb(185, 147, 134),Color.rgb(206, 139, 130)};
我得到这个输出。所以我想删除我在中提到的小数点


输出是完美的。我只想要不带小数点的输出。我该怎么做呢?

如果可以输入整数值作为参数,或者如果库方法不接受整数值,则必须自定义库

如果可以将整数值作为参数输入,或者如果库方法不接受整数值,则必须自定义库

这个问题基本上与已经有好答案的问题相同。也有图书馆作者的标准答案。问问题很好,但在将来,你可以通过事先研究问题来避免对你的问题投反对票,以确保这些问题还没有被问到

绝对没有必要像前面的低质量回答那样,将库添加为
.jar
文件并编辑库代码。这完全违背了使用库和使用Gradle之类的构建工具的目的

根据上面重复链接的正确答案,编写一个实现
IValueFormatter
的类,如下所示:

public class IntValueFormatter implements IValueFormatter {

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
        return String.valueOf((int) value);
    }
}
pieDataSet.setValueFormatter(new IntValueFormatter());
然后你像这样消费它:

public class IntValueFormatter implements IValueFormatter {

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
        return String.valueOf((int) value);
    }
}
pieDataSet.setValueFormatter(new IntValueFormatter());

这个问题基本上与已经有了好答案的问题相同。也有图书馆作者的标准答案。问问题很好,但在将来,你可以通过事先研究问题来避免对你的问题投反对票,以确保这些问题还没有被问到

绝对没有必要像前面的低质量回答那样,将库添加为
.jar
文件并编辑库代码。这完全违背了使用库和使用Gradle之类的构建工具的目的

根据上面重复链接的正确答案,编写一个实现
IValueFormatter
的类,如下所示:

public class IntValueFormatter implements IValueFormatter {

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
        return String.valueOf((int) value);
    }
}
pieDataSet.setValueFormatter(new IntValueFormatter());
然后你像这样消费它:

public class IntValueFormatter implements IValueFormatter {

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
        return String.valueOf((int) value);
    }
}
pieDataSet.setValueFormatter(new IntValueFormatter());

您需要创建自定义percentFormatter来格式化图表上的百分比演示文稿

public class Remover extends PercentFormatter {

private DecimalFormat mDecimalFormat;

public Remover (DecimalFormat format) {
    this.mDecimalFormat = format;
}

@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex,       ViewPortHandler viewPortHandler) {

return   "% " + mDecimalFormat.format(value) ;
 }
}

然后,您可以通过调用图表对象上的setValueFormatter()将此格式化程序分配给图表。

您需要创建一个自定义的percentFormatter来格式化图表上的百分比演示文稿

public class Remover extends PercentFormatter {

private DecimalFormat mDecimalFormat;

public Remover (DecimalFormat format) {
    this.mDecimalFormat = format;
}

@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex,       ViewPortHandler viewPortHandler) {

return   "% " + mDecimalFormat.format(value) ;
 }
}

然后,您可以通过调用图表对象上的setValueFormatter()将此格式化程序分配给图表。

如下所示设置ValueFormatter

  pieData.setValueFormatter(new ValueFormatter() {
            @Override
            public String getFormattedValue(float value) {
                return String.valueOf((int) Math.floor(value));
            }
        });

按如下方式设置ValueFormatter

  pieData.setValueFormatter(new ValueFormatter() {
            @Override
            public String getFormattedValue(float value) {
                return String.valueOf((int) Math.floor(value));
            }
        });

第一步: 请将以下“
PercentFormatter
”类放入您的软件包文件夹中:

public class PercentFormatter extends ValueFormatter {

    public DecimalFormat mFormat;
    private PieChart pieChart;

    public PercentFormatter() {
        mFormat = new DecimalFormat("###,###,##");
    }
    public PercentFormatter(PieChart pieChart) {
        this();
        this.pieChart = pieChart;
    }

    @Override
    public String getFormattedValue(float value) {
        return mFormat.format(value) + " %";
    }

    @Override
    public String getPieLabel(float value, PieEntry pieEntry) {
        if (pieChart != null && pieChart.isUsePercentValuesEnabled()) {
            // Converted to percent
            return getFormattedValue(value);
        } else {
            // raw value, skip percent sign
            return mFormat.format(value);
        }
    }

}
第二步: 在Piedata集合所在的活动中,按以下方式在PieDataset中添加值格式:

 pieDataSet.setValueFormatter(new PercentFormatter());
 PieData pieData = new PieData(pieDataSet);
 pieChart.setData(pieData);

这样,我们就可以删除饼图数据中的小数点。

第一步: 请将以下“
PercentFormatter
”类放入您的软件包文件夹中:

public class PercentFormatter extends ValueFormatter {

    public DecimalFormat mFormat;
    private PieChart pieChart;

    public PercentFormatter() {
        mFormat = new DecimalFormat("###,###,##");
    }
    public PercentFormatter(PieChart pieChart) {
        this();
        this.pieChart = pieChart;
    }

    @Override
    public String getFormattedValue(float value) {
        return mFormat.format(value) + " %";
    }

    @Override
    public String getPieLabel(float value, PieEntry pieEntry) {
        if (pieChart != null && pieChart.isUsePercentValuesEnabled()) {
            // Converted to percent
            return getFormattedValue(value);
        } else {
            // raw value, skip percent sign
            return mFormat.format(value);
        }
    }

}
第二步: 在Piedata集合所在的活动中,按以下方式在PieDataset中添加值格式:

 pieDataSet.setValueFormatter(new PercentFormatter());
 PieData pieData = new PieData(pieDataSet);
 pieChart.setData(pieData);

这样,我们就可以删除饼图数据中的小数点。

返回String.valueOf(Math.floor(value)).replace(.0),“”)
这对我很有效

返回String.valueOf(Math.floor(value)).replace(.0),“”)
这对我很有效

如何自定义库?是否通过gradle添加库(编译'com.xxxxxxx')或者作为JAR添加到您的项目中?如果您通过gradletry添加库,则无法编辑库。我必须通过JAR添加库?如何自定义库?是否通过gradle添加库(编译“com.xxxxxxxx”)或者作为JAR添加到您的项目中?如果您通过gradletry将库添加为JAR文件,则无法编辑库。因此,我必须通过JAR添加库?可能是@davidawson的副本,这不应该是个问题,原因有几个:1、即使是重复的帖子也不会被删除,因此应该进行编辑;2.该帖子出现在“帮助和改进”队列中,但不在“接近投票”中。可能重复@davidawson,这不应该是一个问题,原因有几个:1、即使是重复的帖子也不会被删除,因此应进行编辑;2.这篇文章出现在“帮助与改进”队列中,而不是“接近票”队列中。我很高兴你支持我,并教我如何避免落选。它完美而恰当地解决了这个问题!!。。。我很高兴你们支持我,教我如何避免落选。它完美而恰当地解决了这个问题!!。。。塔克斯