前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >hellocharts的基础使用

hellocharts的基础使用

作者头像
小王不头秃
发布2024-06-19 15:12:05
1040
发布2024-06-19 15:12:05
举报
HelloCharts的基本使用

在线导入hellocharts步骤

这里以android studio为例

这里输入全称才可以实现下载,搜到结果之后点击ok就开始下载了,如果下载之后启动app发现闪退,需要在build.gradle中文件中找到下面这一行

像图中这样加上一个@aar即可

基本使用

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

代码语言:javascript
复制
<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

所需属性

代码语言:javascript
复制
//对应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轴数据

代码语言:javascript
复制
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]));
    }
}

创建一条折线

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

代码语言:javascript
复制
/**
     * 创建一条线   这里可以创建多条线然后添加到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);
    }

设置横纵坐标

代码语言:javascript
复制
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

代码语言:javascript
复制
 @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);
    }

最终代码

代码语言:javascript
复制
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);
    }
}

运行结果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HelloCharts的基本使用
  • 在线导入hellocharts步骤
  • 基本使用
  • 运行结果
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档