gpt4 book ai didi

Android Graph View 自动滚动线图

转载 作者:行者123 更新时间:2023-11-30 00:03:55 25 4
gpt4 key购买 nike

我已经使用 Grap View 创建了一个折线图,我可以手动左右滚动它,但我无法将它设置为自动滚动。到目前为止,我还没有找到任何人会尝试这样做的线程,所以我想知道 Graph View 是否支持自动滚动。

到目前为止,这是我的代码:

    graph = (GraphView) findViewById(R.id.graph);

// first series is a line
DataPoint[] points = new DataPoint[1000];
for (int i = 0; i < points.length; i++) {
points[i] = new DataPoint(i, Math.sin(i*0.5) * 20*(Math.random()*10+1));
}
series = new LineGraphSeries<>(points);

// set manual X bounds
graph.getViewport().setYAxisBoundsManual(true);
graph.getViewport().setMinY(-150);
graph.getViewport().setMaxY(200);

graph.getViewport().setXAxisBoundsManual(true);

Handler handler1 = new Handler();
for (orderNr = 1; orderNr < 50 ;orderNr++) {
handler1.postDelayed(new Runnable() {

@Override
public void run() {
graph.getViewport().setMinX(orderNr);
graph.getViewport().setMaxX(orderNr + 100);
graph.addSeries(series);

}
}, 1000);
}
graph.getViewport().setScrollable(true); // enables horizontal scrolling

如果我不在 Thread 行中执行此操作

graph.getViewport().setMinX(orderNr)
graph.getViewport().setMaxX(orderNr + 100)

将图形设置为在指定位置开始和结束,但是当它们被放入 Thread 时,我认为 Thread 首先完成,达到最大 orderNr 然后绘制出 graph

也许有人已经用 MPAndroidChartaChartEngine 或其他东西尝试过这个并且可以告诉我我在这里做错了什么。

最佳答案

这个问题也发生在我身上,但我通过将 isScalable 设置为 true 并在每次更新时滚动到结束来解决它。此代码生成一个滚动宽度为 30 且 y 限制为 0 和 1000 的 graphView。

class ScrollingGraphView(context: Context, attrs: AttributeSet): GraphView(context, attrs) {
private var series = LineGraphSeries<DataPoint>();
private var x = 0.0

init {
addSeries(series)
viewport.isScrollable = true
viewport.isScalable = true
viewport.isYAxisBoundsManual = true
viewport.setMinY(0.0)
viewport.setMaxY(1000.0)
viewport.setMinX(0.0)
viewport.setMaxX(30.0)
}

fun addEntry(y:Double?) {
if(null != y) {
x += .1
series.appendData(DataPoint(x, y), true, 200)
}
invalidate()
viewport.scrollToEnd()
}

关于Android Graph View 自动滚动线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49369334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com