MPAndroidChar X轴显示日期以及动态改变坐标点显示精度

来源:互联网 发布:linux 创建管理员用户 编辑:程序博客网 时间:2024/06/16 22:35

最近一直加班,去做了Android项目,虽然一直搞得后台,但是也不能忘了老本么,这次任务要求做一个Android折线图,显示数据,看到Github开源代码库里面提供了MPAndroidChar这个开源代码,十分惊艳,原来安卓图表类可以做的这么好看,贴下Github地址吧, PhilJay/MPAndroidChart。
连续加班一个星期,每天3点睡,也算是对程序员这个职业的信仰吧,哈哈。

  • MPAndroidChar X轴显示日期
    先贴图片,看下效果吧,我做成一个界面需要显示三个折线图:
    这里写图片描述
    我们可以看到,X轴显示的是日期,但是是一个区间类,X坐标轴会多显示几次,这个我没有深究,时间太紧了
    代码如下:
LineChart mLineChart = new LineChart();List<Entry> entries = new ArrayList<Entry>();final List<String> lDate = new ArrayList<>();float x = 0f;float y = 0f;//标记处,此处处理要显示的日期类型/*只需要将此注释掉的代码循环几次,就可以连续添加数据了SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");lDate.add(sdf.format(name));entries.add(new Entry(x, y));x++;*/mLineChart.getDescription().setEnabled(false);XAxis xAxis = mLineChart.getXAxis();xAxis.setValueFormatter(new IAxisValueFormatter() {            @Override            public String getFormattedValue(float value, AxisBase axis) {                return lDate.get((int)value);            }        });
  • MPAndroidChar 调节精度
    在实际开发过程中,我们需要显示不同精度的数据,所以我们需要针对不同数据设计不同精度,比如上图中有的整型,有的是浮点。
    代码如下:
LineChart mLineChart = new LineChart();List<Entry> entries = new ArrayList<Entry>();final List<String> lDate = new ArrayList<>();float x = 0f;float y = 0f;//标记处,此处处理要显示的日期类型/*只需要将此注释掉的代码循环几次,就可以连续添加数据了SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");lDate.add(sdf.format(name));entries.add(new Entry(x, y));x++;*/mLineChart.getDescription().setEnabled(false); //一个LineDataSet就是一条线LineDataSet lineDataSet = new LineDataSet(entries, tname);LineData data = new LineData(lineDataSet);        //设置数据格式if (p == 0) {     data.setValueFormatter(new IValueFormatter() {     @Override     public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {            int n = (int) value;             return n+"";             }     });    } else {       data.setValueFormatter(new IValueFormatter() {       @Override       public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {             DecimalFormat df = new DecimalFormat("#.00");              return ""+df.format(value);            }          });}
原创粉丝点击