当前位置:   article > 正文

hellocharts-Android图标库

hellocharts-android

各个属性介绍地址:http://www.jianshu.com/p/7e8de03dad79
Android studio hellocharts 接入

repositories {
       maven {
           url "https://jitpack.io"
       }
   }
   
   dependencies {
       //implementation 'com.github.lecho:hellocharts-android:v1.5.8'
       implementation 'com.github.lecho:hellocharts-library:1.5.8@aar'
   }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

ColumnChartView-柱状图

private ColumnChartView columnChartView;//柱状图
private ColumnChartData columnChartData;//存放柱状图数据的对象
private boolean hasAxes = true;            //是否有坐标轴
private boolean hasAxesNames = false;       //是否有坐标轴的名字
private boolean hasLabels = false;          //柱子上是否显示标识文字
private boolean hasLabelForSelected = true;    //柱子被点击时,是否显示标识的文字
private List<AxisValue> mAxisXValues = new ArrayList<>();   //x轴方向的坐标数据
private List<AxisValue> mColumnAxisYValues = new ArrayList<>();  //y轴方向的坐标数据

//设置X、Y轴的数据
    private void initXY() {
        //设置x轴上面的数据
        for (int i = 0; i < chartDataItemBeanList.size(); i++) {
            mAxisXValues.add(new AxisValue(i).setLabel(chartDataItemBeanList.get(i).getTime().substring(5)));
        }
        //设置Y轴上面的数据
        for (int i = 0; i < 20; i++) {
            mColumnAxisYValues.add(new AxisValue(i).setLabel("" + i));
        }
    }
 /**
  * 填充数据
  */
    private void setColumnData() {
        //柱状图
        int numColumns = chartDataItemBeanList.size();//有多少堆数据
        List<Column> columns = new ArrayList<>();
        List<SubcolumnValue> values;
        List<Float> columnList = new ArrayList<>();
        for (int i = 0; i < numColumns; ++i) {
            values = new ArrayList();//每一堆有多少列
            values.add(new SubcolumnValue(Float.valueOf(chartDataItemBeanList.get(i).getPcipop()), colors[0]));
            values.add(new SubcolumnValue(Float.valueOf(chartDataItemBeanList.get(i).getVidpop()), colors[1]));
            columnList.add(Float.valueOf(chartDataItemBeanList.get(i).getPcipop()));
            columnList.add(Float.valueOf(chartDataItemBeanList.get(i).getVidpop()));
            Column column = new Column(values);
            column.setHasLabels(hasLabels);
            column.setHasLabelsOnlyForSelected(hasLabelForSelected);
            columns.add(column);
        }
        float maxColumnPointY = Collections.max(columnList);//获取Y轴最大值
        columnChartData = new ColumnChartData(columns);
        if (hasAxes) {
            Axis axisX = new Axis();
            Axis axisY = new Axis().setHasLines(true);
            if (hasAxesNames) {//显示坐标轴名称
                axisX.setName("最近7天数据");
                axisY.setName("问诊人次");
            }
            axisX.setValues(mAxisXValues);//设置x轴的坐标
            //设置Y轴的坐标
            axisY.setAutoGenerated(true);//自动填充Y轴坐标
//            axisY.setValues(mColumnAxisYValues);//手动填充Y轴坐标

            columnChartData.setAxisXBottom(axisX);
            columnChartData.setAxisYLeft(axisY);
        } else {
            columnChartData.setAxisXBottom(null);
            columnChartData.setAxisYLeft(null);
        }
        columnChartView.setZoomEnabled(false);是否支持缩放
        设置是否可以选中图表中的值,即当点击图表中的数据值后,会一直处于选中状态,直到用户点击其他空间。默认为false。
        columnChartView.setValueSelectionEnabled(true);
        columnChartView.setColumnChartData(columnChartData);//填充数据
        Viewport columnView = new Viewport(columnChartView.getMaximumViewport());
        //Y轴最大值为 加上2、防止显示不全
        columnView.top = maxColumnPointY + 2;
        columnChartView.setCurrentViewport(columnView);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69

代码调用

initXY();
setColumnData();
  • 1
  • 2

LineChartView-折线图

private LineChartView lineChartView;//折线图
private LineChartData lineChartData;//存放折线图数据的对象
//设置X、Y轴的数据
    private void initXY() {
        //设置x轴上面的数据
        for (int i = 0; i < chartDataItemBeanList.size(); i++) {
            mAxisXValues.add(new AxisValue(i).setLabel(chartDataItemBeanList.get(i).getTime().substring(5)));
        }
        //设置Y轴上面的数据
        for (int i = 0; i < 5; i++) {
            mLineAxisYValues.add(new AxisValue(i).setLabel("" + i * 500));
        }
    }
 /**
  * 折线图填充数据
  */
    private void setLineChartData() {
        //X轴数据点
        List<PointValue> mPointValues = new ArrayList<>();
//        //获取list中最大最小值 (纯属打印、非必须)
        List<Float> list = new ArrayList<>();
        for (int i = 0; i < chartDataItemBeanList.size(); i++) {
            //数据点
            mPointValues.add(new PointValue(i, Float.valueOf(chartDataItemBeanList.get(i).getTotalmoney())));
            //将所有点添加至新list中
            list.add(Float.valueOf(chartDataItemBeanList.get(i).getTotalmoney()));
        }
        float maxPoint = Collections.max(list);
        float minPoint = Collections.min(list);
        Line line = new Line(mPointValues);
        //存放线条的集合
        List<Line> lines = new ArrayList<>();
        //LineChartValueFormatter chartValueFormatter = new SimpleLineChartValueFormatter(2);
        //line.setFormatter(chartValueFormatter);//显示小数点(后2位)
//        line.setHasLabels(true);//曲线的数据坐标是否加上备注
        line.setHasLabelsOnlyForSelected(true);//点击数据坐标提示数据(设置了这个line.setHasLabels(true);就无效)
        line.setShape(ValueShape.CIRCLE);//折线图上每个数据点的形状 这里是圆形 (
        //有三种 :ValueShape.SQUARE(方形)  ValueShape.CIRCLE(圆形)  ValueShape.DIAMOND (菱形))
        line.setPointRadius(3);//坐标点大小
        line.setCubic(true);//曲线是否平滑
        line.setFilled(true);//是否填充曲线的面积
        line.setHasLines(true);//是否用直线显示。如果为false 则没有曲线只有点显示
        line.setHasPoints(true);//是否显示圆点 如果为false 则没有原点只有点显示
        line.setColor(Color.parseColor("#037BFF"));
        line.setStrokeWidth(1);//设置线的宽度
        lines.add(line);

        lineChartData = new LineChartData();
        lineChartData.setLines(lines);
        //设置数据的初始值,即所有的数据从baseValue开始计算,默认值为0。
        lineChartData.setBaseValue(0f);
        Axis axisX = new Axis();
        Axis axisY = new Axis().setHasLines(true);
        if (hasAxesNames) {//显示坐标轴名称
            axisX.setName("最近7天数据");
            axisY.setName("问诊收入");
        }
        //设置x轴的坐标
        axisX.setValues(mAxisXValues);
        axisX.setHasTiltedLabels(true);
        //设置Y轴的坐标
//            axisY.setValues(mLineAxisYValues);//手动填充纵坐标数据
        axisY.setAutoGenerated(true);//自定义纵坐标数据
        axisY.setInside(true);//坐标数据显示在内测
        lineChartData.setAxisXBottom(axisX);
        lineChartData.setAxisYLeft(axisY);

        lineChartView.setZoomEnabled(false);//是否支持缩放
        lineChartView.setValueSelectionEnabled(true);//设置是否可以选中图表中的值,即当点击图表中的数据值后,会一直处于选中状态,直到用户点击其他空间。默认为false。
        lineChartView.setLineChartData(lineChartData);
        Viewport v = new Viewport(lineChartView.getMaximumViewport());
        //Y轴最大值为 加上20、防止显示不全
        v.top = maxPoint + 20;
        //最小值 Y轴最低点就为0
        if(minPoint-100 < 0){
            v.bottom = 0;
        }else {
            v.bottom = minPoint-100;//最小值
        }
        //设置最大化的viewport (chartdata)后再调用
        //这2个属性的设置一定要在lineChart.setMaximumViewport(v);这个方法之后,不然显示的坐标数据是不能左右滑动查看更多数据的
        lineChartView.setMaximumViewport(v);
        //左边起始位置 轴
        v.left = 0;
        //如果数据点超过7,显示7个、否则,显示数据本身大小{自己根据需求设置}
        if (chartDataItemBeanList.size() > 7) {
            // Y轴显示多少数据
            v.right = 7;
        } else {
            v.right = 7;
        }
        //左右滑动
        lineChartView.setCurrentViewport(v);
   }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94

代码调用

initXY();
setLineChartData();
  • 1
  • 2
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号