[英]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.