android - 如何从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);
推荐阅读
- python - 如何解决“'sqlite3.Cursor'对象没有属性'fetcha11'”?
- ios - 如何在不刷新收据的情况下检测应用内购买的退款?
- javascript - 如何使用 JavaScript 更改整个网页的字体颜色?
- c - 减去 (char *)a - (char *)0 会发生什么
- python - 如何使用 canny 找到最长的不间断边缘?
- swift - Flurry - 自定义事件
- python - Python VS 代码占用太多内存并且需要很长时间才能自动完成
- mfc - 在文件模式下为 MFCBrowseEdit 控件设置支持的文件类型?
- python - 使用列表中的循环查找标准偏差
- oop - 关于开放/封闭原则的困惑