安卓图表库hellocharts使用介绍

现在HelloCharts支持以下chart类型:

Line chart(cubic lines, filled lines, scattered points)(线图) 
Column chart(grouped, stacked, negative values)(柱形图) 
Pie chart(饼图) 
Bubble chart(泡泡图) 
Combo chart(columns/lines)(柱图和线图的组合图)

1.添加依赖库

2.XML添加布局

<lecho.lib.hellocharts.view.LineChartView
        android:id="@+id/line_chart"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:padding="10dp"/>

3.在Activity中实现图表相关设置

 private LineChartView lineChart;
    //X轴标注
    String[]date = {"10-31","11-31","12-31","1-31","2-31","3-31","4-31","5-31","6-31","7-31"};
    //图标的数据点
    int[]count = {50,100,100,200,250,300,300,350,400,500};
    private List<PointValue>mPointValues = new ArrayList<PointValue>();
    private List<AxisValue>mAxisValues = new ArrayList<AxisValue>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_word_progress);


        lineChart =(LineChartView)findViewById(R.id.line_chart);
        getAxisXLable();//获取X轴的标注
        getAxisPoints();//获取坐标点
        initLineChart();//初始化
    }
    //设置x轴的显示
    private void getAxisXLable(){
        for(int i = 0;i < date.length;i++){
            mAxisValues.add(new AxisValue(i).setLabel(date[i]));
        }
    }
    //图标每个点的显示
    private void getAxisPoints(){
        for(int i= 0;i < count.length;i++){
            mPointValues.add(new PointValue(i,count[i]));
        }
    }
    //初始化图标
    private void initLineChart(){
        Line line = new Line(mPointValues).setColor(Color.parseColor("#90EE90"));//折线颜色 亮绿
        List<Line>lines = new ArrayList<Line>();
        line.setShape(ValueShape.CIRCLE);//折线图上每个数据点的形状
        line.setCubic(false);//曲线是否平滑
        line.setFilled(true);//是否填充曲线面积
        line.setHasLabels(true);//曲线的数据坐标是否加上备注
        line.setHasLines(true);//是否用线显示 如果为false 则没有曲线只有点显示
        line.setHasPoints(true);//是否显示圆点 如果为false 则没有原点只有点显示(每个数据点都是个大的圆点)
        lines.add(line);
        LineChartData data = new LineChartData();
        data.setLines(lines);

        //坐标轴
        Axis axisX = new Axis();
        axisX.setHasTiltedLabels(false);//X坐标轴字体是斜的显示还是直的,true是斜的显示
        axisX.setTextColor(Color.GRAY);//字体颜色
       // axisX.setName("进步曲线");
        axisX.setTextSize(10);
        axisX.setMaxLabelChars(8);//最多几个x轴坐标 缩放让X轴上数据的个数7<=x<=mAxisXValues.length
        axisX.setValues(mAxisValues);//填充X轴的坐标名称
        data.setAxisXBottom(axisX);//x轴在底部
        axisX.setHasLines(true);//x的分割线

        //Y轴是根据数据的大小自动设置y轴上限
        Axis axisY = new Axis();
        axisY.setName("");
        axisY.setTextSize(10);
        data.setAxisYLeft(axisY);//Y轴设置在左边

        //设置行为属性,支持缩放滑动以及平移
        lineChart.setInteractive(true);
        lineChart.setZoomType(ZoomType.HORIZONTAL);
        lineChart.setMaxZoom((float)2);//最多缩放比例
        lineChart.setContainerScrollEnabled(true,ContainerScrollType.HORIZONTAL);
        lineChart.setLineChartData(data);
        lineChart.setVisibility(View.VISIBLE);

        //设置x轴显示数据的个数
        //不设置axisX.setMaxLabelChars(int count)这句话,则会自动适配X轴所能显示的尽量合适的数据个数。
        Viewport v = new Viewport(lineChart.getMaximumViewport());
        v.left = 0;
        v.right = 7;
        lineChart.setCurrentViewport(v);

    }

源码github地址:https://github.com/qht1003077897/hellocharts-line.git

引用自:    https://www.cnblogs.com/huolongluo/p/5988644.html

猜你喜欢

转载自www.cnblogs.com/x2yblog/p/9884135.html