• 大二下学期每日总结之第一次个人作业(第三阶段)


    今日主要学习了MPAndroid折线图:

    1.首先要引入开源库:

    在项目根目录的build.gradle文件中加入如下代码

    allprojects {
        repositories {
            maven { url "https://jitpack.io" }
        }
    }

    在app根目录的buil.gradle文件中加入依赖

    dependencies {
        compile 'com.github.PhilJay:MPAndroidChart:v3.0.1'
    }

    2.实现利用Entry存放数据:

    List<Entry> list = new ArrayList<>();
                for (int i = 0; i < listwendate.size(); i++) {
                    list.add(new Entry(i, listwendate.get(i).getWendu()));
                    System.out.println(listwendate.get(i).getWendu());//其中两个数字对应的分别是   X轴   Y轴
                }

    3.再创建LineDataSet对折线图的的一些属性进行设置:

     LineDataSet lineDataSet = new LineDataSet(list, "温度");        lineDataSet.setColor(getResources().getColor(R.color.teal_200));            //折线颜色
                lineDataSet.setFillColor(getResources().getColor(R.color.teal_200));        //折线以下填充颜色
                lineDataSet.setDrawFilled(true);                                                   //是否填充
                lineDataSet.setFillAlpha(10);                                                      //填充颜色透明度
                lineDataSet.setLineWidth(1f);                                                      //折线宽度
                //是否画折线点上的空心圆  false表示直接画成实心圆
                lineDataSet.setDrawCircleHole(false);
                // lineDataSet.setValueTextColor(getResources().getColor(R.color.tv_default_blue));   //折线上数值颜色
                //  lineDataSet.setCircleColor(getResources().getColor(R.color.tv_default_blue));      //折线上圆点的颜色
                lineDataSet.setCircleRadius(2);                                                    //圆点的半径
                lineDataSet.setValueTextSize(12);//折线字号
                LineData lineData = new LineData(lineDataSet);

    4.对控件进行一些设置:

    map_Linechart.setData(lineData);
                map_Linechart.setScaleXEnabled(true);   //支持x轴缩放
                map_Linechart.setScaleYEnabled(false);  //禁止y轴缩放
    //          lineChart1.getXAxis().setLabelRotationAngle(-15);
    //          map_Linechart.getXAxis().setDrawGridLines(false);                   //是否绘制X轴上的网格线(背景里面的竖线
    //          map_Linechart.getAxisLeft().setDrawGridLines(false);                //是否绘制Y轴上的网格线(背景里面的横线)
    //          lineChart1.getXAxis().setGridColor(getResources().getColor(R.color.tv_default_gray));
    //          lineChart1.getAxisLeft().setGridColor(getResources().getColor(R.color.tv_default_gray));
                map_Linechart.getXAxis().setGranularity(1);
     map_Linechart.getDescription().setEnabled(false);                   //隐藏文字介绍
                map_Linechart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);   //X轴所在位置   默认为上面
                map_Linechart.getLegend().setEnabled(false);                        //隐藏图例
    //            lineChart1.getAxisLeft().setEnabled(false);                      //隐藏左边的y轴
                map_Linechart.getAxisRight().setEnabled(false);                     //隐藏右边的y轴
    
                //数据更新
                map_Linechart.notifyDataSetChanged();
                map_Linechart.invalidate();

    5.自定义x轴以及折线上显示的内容:

     lineDataSet.setValueFormatter(new IValueFormatter() {
                    @Override
                    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
                        return ""+listwendate.get(dataSetIndex).getWendu();
                    }
                });
     map_Linechart.getXAxis().setValueFormatter(new IAxisValueFormatter() {
                    @Override
                    public String getFormattedValue(float v, AxisBase axisBase) {
                        if (v < listwendate.size()) {
                            String s = String.valueOf(listwendate.get((int) v).getDateandtime());
                            String[] time=s.split(" ");
                            String month = time[0].substring(5, 7);
                            String day = time[0].substring(8,10);
                            return month + "." + day;
                        }
                        return "";
                    }
                });
  • 相关阅读:
    转载——关于scanf造成死循环
    转载——关于C#延时
    2013.02.13——笔记
    最近计划
    关于毕业设计——2013.4.12
    关于c#中combobox赋值问题
    使用DWE编辑对话框窗体
    Insert New Class (a2BusNew under BusItem)
    将TCE链接加入新工作通知(NewWorkAssignment,Sig)邮件中
    创建Relation并Add到数据库
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/14514096.html
Copyright © 2020-2023  润新知