如何从 android 中的栏上方删除小数

How to remove decimals from above of the bar in android

你好,在下面的代码中想要更改左 yaxis 值想要显示 2 的倍数并且想要在条形上方显示整数。

谁能帮帮我

private void setData_chart(int count, float range) {

        float barWidth = 0.9f;
        ArrayList<BarEntry> values = new ArrayList<>();

        for (int i = 0; i < count; i++) {
            float val = Math.round((float) (Math.random() * range));
            values.add(new BarEntry(i, val,
                    getResources().getDrawable(R.drawable.ic_launcher)));
        }

        BarDataSet set1;
        if (chart1.getData() != null &&
                chart1.getData().getDataSetCount() > 0) {
            set1 = (BarDataSet) chart1.getData().getDataSetByIndex(0);
            set1.setValues(values);
            chart1.getData().notifyDataChanged();
            chart1.notifyDataSetChanged();
        }
        else {
            set1 = new BarDataSet(values, "");

            int endColor1 = ContextCompat.getColor(getContext(), R.color.linecolor);


            set1.setColors(endColor1);
            set1.setDrawIcons(false);

            dataSets = new ArrayList<>();
            dataSets.add(set1);

            BarData data = new BarData(dataSets);
            data.setValueTextSize(12f);
            data.setValueTypeface(tfLight);
            data.setBarWidth(barWidth);
            chart1.setData(data);
        }
    }

为此,您必须单独创建 ValueFormatter 并将其绑定到您的图表数据。

public class MyDecimalValueFormatter implements ValueFormatter {

        private DecimalFormat mFormat;

        public MyDecimalValueFormatter() {
            mFormat = new DecimalFormat("#");
        }

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

然后像下面这样设置

MyDecimalValueFormatter formatter = new MyDecimalValueFormatter();

    BarData data = new BarData(dataSets);
    data.setValueTextSize(12f);
    data.setValueTypeface(tfLight);
    data.setBarWidth(barWidth);
    data.setValueFormatter(formatter)
    chart1.setData(data);