美文网首页
Android 绘制实时曲线(折线图)

Android 绘制实时曲线(折线图)

作者: jianshu_wl | 来源:发表于2024-04-28 14:06 被阅读0次
    实时曲线
    双Y轴实时曲线

    github地址:https://github.com/GitHubWanglei/RTLineChartView

    使用:

    1.创建实时变量:

    RTLineChartView.RTVariable var_1 = new RTLineChartView.RTVariable();
    var_1.identifier = "line_1";
    var_1.value = 246; // 当value改变时,折线图会实时刷新
    var_1.paint.setStrokeWidth(3);
    var_1.paint.setColor(Color.RED);
    rtLineChartView.bindRTVariable(var_1);
    

    2.绑定实时变量:

    rtLineChartView.bindRTVariable(var_1);
    

    3.开始监听:

    // 采样率sampleRate最好不要大于屏幕刷新率,以避免不必要的性能浪费.
    rtLineChartView.startListening(60);
    

    4.可动态设置y轴范围,防止折线越界,显示不完整.

    rtLineChartView.setYAxisDynamicValue(new RTLineChartView.RTLineChartYAxisDynamicValue() {
       @Override
       public float minValue(float minValueInLine) {
          if (minValueInLine < 0) {
             return minValueInLine - 20;
          }
          return 0;
       }
    
       @Override
       public float maxValue(float maxValueInLine) {
          if (maxValueInLine > 500) {
             return maxValueInLine + 50;
          }
          return 500;
       }
    });
    

    5.可自定义左右y轴文字显示格式:

    rtLineChartView.setYAxisValueFormat(new RTLineChartView.RTLineChartYAXisValueFormat() {
       @Override
       public String leftValueFormat(float value) {
          if (value == 500.f) {
             return value+" (最大)";
          } else if (value == 0.f) {
             return value+" (最小)";
          } else {
             return value+"";
          }
       }
    
       @Override
       public String rightValueFormat(float value) {
          return (int)value+"%";
       }
    });
    

    使用注意点:

    1.每个实时变量的identifier需唯一,否则重复的identifier变量将无法绑定.
    2.关于采样率:
      采样率为每秒对变量的采样次数,也是曲线每秒的刷新次数,也是x时间轴每秒的移动次数.
      采样率越大,x时间轴移动越丝滑,但在x轴时间段内累积的采样点越多,所占内存也越大.
      因此,调用startListening(float sampleRate)方法时,采样率参数sampleRate最好不要大于屏幕刷新率,以避免不必要的性能浪费.

    相关文章

      网友评论

          本文标题:Android 绘制实时曲线(折线图)

          本文链接:https://www.haomeiwen.com/subject/xuvzxjtx.html