贝塞尔曲线之折线加日期选择器

本文详细介绍了在Android中实现曲线图表的步骤,包括修改轴标尺间隔、显示表格、设置贝塞尔曲线、锚点形状、播放动画等。同时,讲解了如何处理横纵轴数据,实现实时数据展示及动画效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接:https://blog.youkuaiyun.com/u014608640/article/details/82145497 

时间选择器参考链接:https://www.cnblogs.com/woaixingxing/p/6872198.html

由于代码涉及公司数据隐私,现提供原博主的GitHub地址:https://github.com/jeanboydev/Android-LineChart 并致以感谢。

 

由于客户需求要做曲线图,还要能选择不同日期来显示不同日期的曲线。无奈只能硬着头皮去尝试解决。

 

  1. 修改 Y 轴标尺间隔

    lineChartView.setRulerYSpace(value);
    
  2. 修改 X 轴标尺间隔(锚点间距)

    lineChartView.setStepSpace(value);
    
  3. 设置是否显示表格

    lineChartView.setShowTable(isShowTable);
    
  4. 设置是否为贝塞尔曲线

    lineChartView.setBezierLine(isBezier);
    
  5. 设置锚点是否为方形

    lineChartView.setCubePoint(isCube);
    
  6. 播放动画

    lineChartView.playAnim();

      7.横轴显示当前和历史日期

stringList.clear();
                        for(int i=0;i<infoList.size();i++){
                            DataInfo dataInfo = new DataInfo();
                            dataInfo.setReceivingTime(infoList.get(i).getReceivingTime());
                            stringList.add(dataInfo.getReceivingTime());
                        }
                       lineChartView.setLinePoints(stringList);

  8.纵轴显示后台返回实时数据

  datas.clear();
                        for(int i=0;i<infoList.size();i++){
                            DataInfo dataInfo = new DataInfo();
                            dataInfo.setData(infoList.get(i).getData());
                            LineChartView.Data data = new LineChartView.Data(Integer.parseInt(dataInfo.getData()));
                            datas.add(data);
                        }
                       lineChartView.setData(datas);

9.横纵轴实时数据为空时,用假数据填充

List<String> jialist = new ArrayList<>();

        jialist.add("60000000032xx1325");
        jialist.add("12345612365xx2145");



private int[] jiaYlist = new int[]{15,15};

    for (int value : jiaYlist) {
                               
         LineChartView.Data data = new LineChartView.Data(value);
                              
          datas.add(data);
    }

10.绘制横轴所有时间文本(由于手机屏幕太小,不方便显示具体时间,故而采取截取字符串形式)

drawRulerXText(canvas, list.get(i).substring(11,13)+"时",linePoints[i].x, 0);

注意事项:

(1)非空判断。(横轴纵轴是一一对应关系)

(2)时间参数。(new Date()仅表示当前时间)

(3)原创文章,转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值