繁体   English   中英

android-graphview-动态设置值

[英]android-graphview - set values dynamically

所以我正在使用android-graphview( https://github.com/jjoe64/GraphView )。

我试图弄清楚如何在我从源中获取数据时以编程方式将DataPoints地添加到该系列中。

目前该文档说要这样做:

LineGraphSeries<DataPoint> series2 = new LineGraphSeries<>(new DataPoint[] {
    new DataPoint(0, 4),
    new DataPoint(1, 5),
    new DataPoint(2, 2),
    new DataPoint(3, 1),
    new DataPoint(4, 10)
});

但是我希望能够随着我的for循环获取这些数据点而动态添加/创建。

有什么建议么?

最简单的方法是将数据附加到已添加到图形的现有系列中。

GraphView graph = (GraphView) findViewById(R.id.gv);
LineGraphSeries<DataPoint> lineGraphSeries = new LineGraphSeries<>();

graph.addSeries(lineGraphSeries);

DataPoint dataPoint = sth...
lineGraphSeries.appendData(dataPoint);
public class AddSeriesAtRuntime extends BaseExample {
    private Activity mActivity;

    @Override
    public void onCreate(FullscreenActivity activity) {
        mActivity = activity;
        GraphView graph = (GraphView) activity.findViewById(R.id.graph);
        initGraph(graph);
    }

    @Override
    public void initGraph(final GraphView graph) {
        Button btn = (Button) mActivity.findViewById(R.id.btnAddSeries);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                graph.addSeries(new LineGraphSeries(generateData()));
            }

        });

        btn = (Button) mActivity.findViewById(R.id.btnClear);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                graph.removeAllSeries();
            }
        });
    }

    private DataPoint[] generateData() {
        Random rand = new Random();
        int count = 30;
        DataPoint[] values = new DataPoint[count];
        for (int i=0; i<count; i++) {
            double x = i;
            double f = rand.nextDouble()*0.15+0.3;
            double y = Math.sin(i*f+2) + rand.nextDouble()*0.3;
            DataPoint v = new DataPoint(x, y);
            values[i] = v;
        }
        return values;
    }
}

来源: https : //github.com/jjoe64/GraphView-Demos/blob/master/app/src/main/java/com/jjoe64/graphview_demos/examples/AddSeriesAtRuntime.java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM