hellochart

最近项目中用到图表,之前用的mpchart 发现线条连接点只能是远点 不能设置正方形 Google一把 发现hellochart可以实现

基本配置如下

private fun initLineChart() {
        val line = Line(mPointValues)  //折线图数据
        val lines = java.util.ArrayList<Line>()
        //展示2位小数
        val chartValueFormatter = SimpleLineChartValueFormatter(2);
        line.formatter = chartValueFormatter//显示小数点
        line.shape = ValueShape.SQUARE//折线图上每个数据点的形状  这里是正方形 (有三种 :ValueShape.SQUARE  ValueShape.CIRCLE  ValueShape.SQUARE)
        line.isCubic = false//曲线是否平滑 折线
        line.isFilled = false//是否填充曲线的面积
//      line.setHasLabels(true);//曲线的数据坐标是否加上备注
        line.setHasLabelsOnlyForSelected(true)//点击数据坐标提示数据(设置了这个line.setHasLabels(true);就无效)
        line.setHasLines(true)//是否用直线显示。如果为false 则没有曲线只有点显示
        line.setHasPoints(true)//是否显示圆点 如果为false 则没有原点只有点显示

        line.color = findColorById(R.color.home_color_fault)//设置折现颜色
        line.strokeWidth = 1//设置折线宽度
        line.pointColor = findColorById(R.color.home_color_fault)// 设置节点颜色

        line.pointRadius = 4// 设置节点半径

        lines.add(line)
        val data = LineChartData()
        data.lines = lines

        //坐标轴
        val axisX = Axis() //X轴
        axisX.setHasTiltedLabels(true)
        axisX.textColor = findColorById(R.color.home_color_position)  //设置字体颜色
        //axisX.setName("未来几天的天气");  //表格名称
        axisX.textSize = 11//设置字体大小
        axisX.maxLabelChars = 6  //最多几个X轴坐标

        axisX.values = mAxisXValues  //填充X轴的坐标名称
        axisX.setHasTiltedLabels(false)// 设置X轴文字向左旋转45度
        axisX.setHasSeparationLine(false)
        axisX.setHasLines(true)
        data.axisXBottom = axisX //x 轴在底部
//      data.setAxisXTop(axisX);  //x 轴在顶部

        val axisY = Axis()  //Y轴
        //axisY.maxLabelChars = 7 //默认是3,只能看最后三个数字
        axisY.name = ""//y轴标注
        axisY.textSize = 11//设置字体大小
        axisY.textColor = findColorById(R.color.transparent)//不展示y轴 这里设置透明色 保留y轴占位
        axisY.setHasSeparationLine(true)
        axisY.setHasLines(true)
        data.axisYLeft = axisY  //Y轴设置在左边
        data.axisYRight = axisY //y轴设置在右边 如厕设置 防止x轴最后一个标签显示不全 也可用padding

        //设置行为属性,支持缩放、滑动以及平移
        lineChart.isInteractive = true//交互
        lineChart.isScrollEnabled = true//滑动
        lineChart.isZoomEnabled = false//缩放
        lineChart.zoomType = ZoomType.HORIZONTAL
        lineChart.setContainerScrollEnabled(true, ContainerScrollType.HORIZONTAL)
        lineChart.lineChartData = data
        lineChart.visibility = View.VISIBLE
        //设置坐标从0开始
        val v = Viewport(lineChart.maximumViewport)
        v.bottom = if (minY >= 0) 0f else minY
        v.top = maxY
        //固定Y轴的范围,如果没有这个,Y轴的范围会根据数据的最大值和最小值决定,这不是我想要的
        lineChart.maximumViewport = v

        v.left = 0f
        //设置x轴缩放 防止数据过多产生堆积
        v.right = 6f
        lineChart.currentViewport = v

        //为图表设置值得触摸事件
//        lineChart.onValueTouchListener = object : LineChartOnValueSelectListener {
//            override fun onValueSelected(lineIndex: Int, pointIndex: Int, value: PointValue) {
//                App.getInstance().showToast(value.y.toString())
//            }
//
//            override fun onValueDeselected() {
//
//            }
//        }
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值