0

我尝试构建一个简单的应用程序,它使用 jjoe64 的GraphView库来绘制加速度计的实时值。

我已经完成了加速度计的值读取部分,现在我在将这些值实时放到图形上时遇到了一个小问题。

这是我的代码:

我设置了一个发送加速度计值广播的服务,在我的图形绘制活动中,我使用BroadcastReceiver来检索这样的值:

...
private String sensorType = "";
private float[] sensorVal;

private GraphView mGraphView;
private GraphViewSeries xSeries;

private GraphViewData xData;


private int counter = 0;
...

    mReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getFloatArrayExtra(sensorType) != null) {
                sensorVal = intent.getFloatArrayExtra(sensorType);

                ++counter;
                xSeries.appendData(new GraphViewData(counter, sensorVal[0]), true, 500);

                // mGraphView.redrawAll(); // Same result if I use redrawAll();
            }
        }
    };

我可以正确获取加速度计的值,但不知何故,也许我没有正确使用GraphView'append 方法,我得到的结果是图表仅绘制了最新值(在我的情况下,是 x 轴的值)和“丢弃”前一个。这是我得到的截图:

在此处输入图像描述

我还尝试通过访问jjoe64 在 Github 上的示例来了解如何制作实时图表,但我找不到应该更改代码的地方。

我对SO进行了一些搜索:

Android graphview不会自动更新 Android graphview所有x轴值都设置为最新值

但他们都不能真正为我提供帮助。

有人可以启发我吗?

干杯。

4

0 回答 0