Android studio graphview 问题

问题描述 投票:0回答:1

我正在尝试创建一个图形视图,然后在更新数据时填充,但是在更新它们之后,图形移出(尽管轴标题保留在原位)

创建图表:

GraphView graph = (GraphView) (findViewById(R.id.graph));
        graph.getGridLabelRenderer().setHorizontalLabelsColor(Color.rgb(0, 68, 173));
        graph.getGridLabelRenderer().setVerticalLabelsColor(Color.rgb(0, 68, 173));
        GridLabelRenderer glr = graph.getGridLabelRenderer();
        glr.setPadding(32);
        glr.setHorizontalAxisTitle("HORIZONTAL");
        glr.setHorizontalAxisTitleTextSize(25);
        glr.setHorizontalAxisTitleColor(Color.rgb(0, 68, 173));
        glr.setVerticalAxisTitle("VERTICAL");
        glr.setVerticalAxisTitleTextSize(25);
        glr.setVerticalAxisTitleColor(Color.rgb(0, 68, 173));
        graph.getViewport().setScalable(true);

添加数据:

GraphView graph = (GraphView) (findViewById(R.id.graph));
                        graph.getViewport().setXAxisBoundsManual(true);
                        graph.getViewport().setMaxX(array_for_indication_for_graph.size());
                        graph.getViewport().setMinX(0);
                        graph.getViewport().setYAxisBoundsManual(true);
                        graph.getViewport().setMaxY(max + 1);
                        graph.getViewport().setMinY(min - 1);

                        LineGraphSeries<DataPoint> series = new LineGraphSeries<>();
                        series.setColor(Color.rgb(255, 125, 0));
                        for (int i = 0; i < array_for_indication_for_graph.size(); i++) {
                            series.appendData(new DataPoint(i, Float.parseFloat(array_for_indication_for_graph.get(i))), true, 20000);
                        }
                        graph.addSeries(series);
                        graph_was_drawn = 1;

我尝试删除填充,将 scrolltoEnd 设置为 false,但没有任何效果......

照片:Correct work before measurment

照片:Wrong work

java android view android-graphview
1个回答
0
投票

尝试在添加新数据之前将视口的可滚动和滚动到结束属性设置为 false。这将确保添加新数据时视口不会移动。

    GraphView graph = (GraphView) (findViewById(R.id.graph));
graph.getViewport().setScrollable(false);
graph.getViewport().setScrollToEnd(false);

// Add your data series here

graph.getViewport().setXAxisBoundsManual(true);
graph.getViewport().setMaxX(array_for_indication_for_graph.size());
graph.getViewport().setMinX(0);
graph.getViewport().setYAxisBoundsManual(true);
graph.getViewport().setMaxY(max + 1);
graph.getViewport().setMinY(min - 1);


  
graph.addSeries(series);
graph_was_drawn = 1;
enter code here
© www.soinside.com 2019 - 2024. All rights reserved.