hellocharts的基础使用

在线导入hellocharts步骤

这里以android studio为例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这里输入全称才可以实现下载,搜到结果之后点击ok就开始下载了,如果下载之后启动app发现闪退,需要在build.gradle中文件中找到下面这一行
在这里插入图片描述
像图中这样加上一个@aar即可

基本使用

(1)布局文件的内容,这里没什么好说的,就是添加一个LineChartView组件

<lecho.lib.hellocharts.view.LineChartView
    android:id="@+id/linechart_one"
    android:background="#00FFFF"
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</lecho.lib.hellocharts.view.LineChartView>

(2)MainActivity.java

所需属性

//对应xml中的LineChartView
private LineChartView lineChartView;
// x轴数据
private String[] data = {"1s前", "2s前", "3s前", "4s前", "5s前", "6s前", "7s前", "8s前", "9s前", "10s前"};
// 每个点的y轴数据 
private Float[] score = {Float.valueOf(541), Float.valueOf(429), Float.valueOf(865), Float.valueOf(901), Float.valueOf(503), Float.valueOf(787), Float.valueOf(222), Float.valueOf(666), Float.valueOf(800), Float.valueOf(525)};
// X轴对象
private List<AxisValue> axisValues = new ArrayList<AxisValue>();
// Y轴对象
private List<PointValue> pointValues = new ArrayList<PointValue>();

//折线集合  用于存放多个折线,即可以显示多条折线
private List<Line> lines = new ArrayList<>();
//折线图数据对象
private LineChartData lData = new LineChartData();

初始化X,Y轴数据

private void  initData(){
    for (int i = 0; i < 10; i++) {
        axisValues.add(new AxisValue(i).setLabel(data[i]));
        pointValues.add(new PointValue(i, score[i]));
    }
}

创建一条折线

这里可以生成多条折线,然后添加到折线列表即可

/**
     * 创建一条线   这里可以创建多条线然后添加到lines中即可
     */
    private void createLine(){
        Line mLine = new Line();
        // 为线添加点
        mLine.setValues(pointValues);

        //设置线的颜色
        mLine.setColor(Color.parseColor("#5699BB"));

        //曲线是否平滑,即是曲线还是折线
//        mLine.setCubic(true);

        //设置点的形状
        mLine.setShape(ValueShape.SQUARE);

        //设置点击坐标提醒  平常不显示 点击才显示
//        mLine.setHasLabelsOnlyForSelected(true);

        //取消线
//        mLine.setHasLines(false);


        //是否填充面积
        mLine.setFilled(true);

        //设置坐标数据显示
        mLine.setHasLabels(true);
        //将所有的线都添加到线的集合中
        lines.add(mLine);
    }

设置横纵坐标

private void createXAndY(){
    //设置X轴
    Axis axisX = new Axis(); //X轴
    //X坐标轴字体是斜的显示还是直的,true是斜的显示
    axisX.setHasTiltedLabels(true);
    //设置字体颜色
    axisX.setTextColor(Color.parseColor("#1C1C1C"));
    //设置字体大小
    axisX.setTextSize(15);
    //最多几个X轴坐标,意思就是你的缩放让X轴上数据的个数7<=x<=mAxisXValues.length
    axisX.setMaxLabelChars(2);
    //填充X轴的坐标名称
    axisX.setValues(axisValues);

    //设置标题
    axisX.setName("三点零零零零");

    //设置是否拥有轴的分界线
    axisX.setHasLines(true);

    lData.setAxisXBottom(axisX); //x 轴在底部


    // Y轴是根据数据的大小自动设置Y轴上限(在下面我会给出固定Y轴数据个数的解决方案)
    Axis axisY = new Axis();  //Y轴
    axisY.setName("");//y轴标注
    axisY.setTextSize(10);//设置字体大小
    lData.setAxisYLeft(axisY);  //Y轴设置在左边
    //data.setAxisYRight(axisY);  //y轴设置在右边


}

oncreate

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lineChartView = findViewById(R.id.linechart_one);
        initData();
        createLine();
        createXAndY();

        lData.setLines(lines);

        //把数据对象设置到折线图中
        lineChartView.setLineChartData(lData);

        //设置是否允许平移和缩放
//        lineChartView.setInteractive(false);

        //设置缩放的轴
        lineChartView.setZoomType(ZoomType.HORIZONTAL);

        //设置缩放的倍数
        lineChartView.setMaxZoom(5);
    }

最终代码

package com.example.daythree2021_6_9;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import lecho.lib.hellocharts.gesture.ContainerScrollType;
import lecho.lib.hellocharts.gesture.ZoomType;
import lecho.lib.hellocharts.model.Axis;
import lecho.lib.hellocharts.model.AxisValue;
import lecho.lib.hellocharts.model.Line;
import lecho.lib.hellocharts.model.LineChartData;
import lecho.lib.hellocharts.model.PointValue;
import lecho.lib.hellocharts.model.ValueShape;
import lecho.lib.hellocharts.view.LineChartView;

public class MainActivity extends AppCompatActivity {

    private LineChartView lineChartView;
    // x轴数据
    private String[] data = {"1s前", "2s前", "3s前", "4s前", "5s前", "6s前", "7s前", "8s前", "9s前", "10s前"};
    // 每个点的y轴数据
    private Float[] score = {Float.valueOf(541), Float.valueOf(429), Float.valueOf(865), Float.valueOf(901), Float.valueOf(503), Float.valueOf(787), Float.valueOf(222), Float.valueOf(666), Float.valueOf(800), Float.valueOf(525)};
    private List<AxisValue> axisValues = new ArrayList<AxisValue>();
    private List<PointValue> pointValues = new ArrayList<PointValue>();

    //折线集合  用于存放多个折线,即可以显示多条折线
    private List<Line> lines = new ArrayList<>();
    //折线图数据对象
    private LineChartData lData = new LineChartData();
    private void  initData(){
        for (int i = 0; i < 10; i++) {
            axisValues.add(new AxisValue(i).setLabel(data[i]));
            pointValues.add(new PointValue(i, score[i]));
        }
    }

    /**
     * 创建一条线   这里可以创建多条线然后添加到lines中即可
     */
    private void createLine(){
        Line mLine = new Line();
        // 为线添加点
        mLine.setValues(pointValues);

        //设置线的颜色
        mLine.setColor(Color.parseColor("#5699BB"));

        //曲线是否平滑,即是曲线还是折线
//        mLine.setCubic(true);

        //设置点的形状
        mLine.setShape(ValueShape.SQUARE);

        //设置点击坐标提醒  平常不显示 点击才显示
//        mLine.setHasLabelsOnlyForSelected(true);

        //取消线
//        mLine.setHasLines(false);


        //是否填充面积
        mLine.setFilled(true);

        //设置坐标数据显示
        mLine.setHasLabels(true);
        //将所有的线都添加到线的集合中
        lines.add(mLine);
    }

    /**
     * 对x轴和y轴进行配置
     */
    private void createXAndY(){
        //设置X轴
        Axis axisX = new Axis(); //X轴
        //X坐标轴字体是斜的显示还是直的,true是斜的显示
        axisX.setHasTiltedLabels(true);
        //设置字体颜色
        axisX.setTextColor(Color.parseColor("#1C1C1C"));
        //设置字体大小
        axisX.setTextSize(15);
        //最多几个X轴坐标,意思就是你的缩放让X轴上数据的个数7<=x<=mAxisXValues.length
        axisX.setMaxLabelChars(2);
        //填充X轴的坐标名称
        axisX.setValues(axisValues);

        //设置标题
        axisX.setName("三点零零零零");

        //设置是否拥有轴的分界线
        axisX.setHasLines(true);

        lData.setAxisXBottom(axisX); //x 轴在底部


        // Y轴是根据数据的大小自动设置Y轴上限(在下面我会给出固定Y轴数据个数的解决方案)
        Axis axisY = new Axis();  //Y轴
        axisY.setName("");//y轴标注
        axisY.setTextSize(10);//设置字体大小
        lData.setAxisYLeft(axisY);  //Y轴设置在左边
        //data.setAxisYRight(axisY);  //y轴设置在右边


    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lineChartView = findViewById(R.id.linechart_one);
        initData();
        createLine();
        createXAndY();

        lData.setLines(lines);

        //把数据对象设置到折线图中
        lineChartView.setLineChartData(lData);

        //设置是否允许平移和缩放
//        lineChartView.setInteractive(false);

        //设置缩放的轴
        lineChartView.setZoomType(ZoomType.HORIZONTAL);

        //设置缩放的倍数
        lineChartView.setMaxZoom(5);
    }
}

运行结果

在这里插入图片描述

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小王不头秃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值