GraphViewSeries.appendData仅绘制最新值

时间:2013-10-26 19:36:38

标签: android android-graphview

我尝试构建一个简单的应用程序,它使用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的追加方法,我得到的结果是图表只绘制了最新值(在我的情况下, x轴的值)和“丢弃”前一个。这是我得到的截图:

enter image description here

我还试图通过访问jjoe64's examples on Github来了解如何进行实时图表,但我无法找到应该更改代码的位置。

我在SO上做了一些搜索:

Android graphview not automatically updating Android graphview all x-axis values are set to the latest value

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

有人可以开导我吗?

干杯。

0 个答案:

没有答案