MPChartAndroid轴线标签自定义的一些显示BUG

来源:互联网 发布:mysql建索引优化 编辑:程序博客网 时间:2024/06/05 07:15

MPChartAndroid的API调用我上一篇大概都介绍了,这一篇主要讲一下我项目中使用遇到的一个BUG,X轴设置标签的显示问题。

首先看一下我设置的数据

       mValues = new ArrayList<>();        mValues.add(new Entry(0, 10,"08-1"));        mValues.add(new Entry(1, 15,""));        mValues.add(new Entry(2, 25,""));        mValues.add(new Entry(3, 19,""));        mValues.add(new Entry(4, 25,"08-10"));        mValues.add(new Entry(5, 16,""));        mValues.add(new Entry(6, 40,""));        mValues.add(new Entry(7, 24,""));        mValues.add(new Entry(8, 27,"08-21"));

我切换日期X轴显示的日期需要变化,X轴显示的标签个数也就需要动态变化

切换日期

这里写图片描述

这时候有个很严重的问题,X轴标签个数不固定就会出现显示问题,所以我们需要做以下设置

xAxis.setLabelCount(mValues.size(),true);

第二个参数传true的意思就是将x轴标签按照前边设置的数字强行等分。

这时候还有一个问题就是图标设置的数据如果为空会报空指针错误,所以我加了一下的判断。

  if (Vals.size() > 0) {            xAxis.setValueFormatter(new IAxisValueFormatter() {                @Override                public String getFormattedValue(float value, AxisBase axis) {                    if ((int) value >= Vals.size()) {                        return "";                    } else {                        return Vals.get((int) value).getData() + "";                    }                }            });        }

原本我以为这样就OK 了,最后又遇到另一个问题,当标签很多的时候value强转int类型就会出问题

这里写图片描述

你会发现中间的标签不见了

这时候你就需要将value 四舍五入的转为int值

      if (mValues.size() > 0) {            xAxis.setValueFormatter(new IAxisValueFormatter() {                @Override                public String getFormattedValue(float value, AxisBase axis) {                    if ((int) value >= mValues.size()) {                        return "";                    } else {                        int tag = (int) ((value * 10 + 5) / 10);                        Log.d("New_Fragment_Date", "value..==:" + value);                        Log.d("New_Fragment_Date", "tag:" + tag);                        return mValues.get(tag).getData() + "";                    }                }            });        }

这里写图片描述

我们可以发现中间的标签09-14 是集合第13个索引,而value12.99999强转int就变成了12,所以这下明白了吧

原创粉丝点击