如何在 运行 时在 GraphView 中暂停和启动实时线图?
How to pause and start a Real time line Graph in GraphView when it is running?
我需要在 running.I 使用 GraphView
库时暂停并在中间开始绘制折线图。我的折线图显示图表 correctly.I 需要实施暂停并从它有 paused.How 的点开始?
提前谢谢你..
我在下面添加了我的代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.fhrlistitemgraph);
String data = getIntent().getExtras().getString("data");
GraphView graph = (GraphView) findViewById(R.id.llgraphview);
series = new LineGraphSeries<DataPoint>();
graph.addSeries(series);
// customize a little bit viewport
Viewport viewport = graph.getViewport();
viewport.setYAxisBoundsManual(true);
viewport.setMinY(0);
viewport.setMaxY(200);
//viewport.setYAxisBoundsManual(true);
viewport.setScalable(true);
viewport.setScrollable(true);
}
@Override
protected void onResume() {
super.onResume();
// we're going to simulate real time with thread that append data to the
// graph
new Thread(new Runnable() {
@Override
public void run() {
String value = null;
String[] data = data.replaceAll("\[", "").replaceAll(" ", "").replaceAll("\]", "").split(",");
// we add 100 new entries
for (int i = 0; i < data.length; i++) {
final int j;
j=i;
value = data[i];
final String values;
values = value;
runOnUiThread(new Runnable() {
@Override
public void run() {
addEntry(j,values);
}
});
// sleep to slow down the add of entries
try {
Thread.sleep(600);
} catch (InterruptedException e) {
// manage error ...
}
}
}
}).start();
}
private void addEntry(int i,String value) {
// here, we choose to display max 10 points on the viewport and we
// scroll to end
series.appendData(new DataPoint(i, Integer.valueOf(value)), true, 5);
}
如果您停止线程,您甚至会停止图形,当您重新启动线程时,图形也会重新启动以显示数据。
您可以使用 UI 中的按钮来停止线程。
在我的例子中,我插入了一个布尔值来停止图形的更新,因为线程不仅是那个,而且还有他们需要的其他计算,当值为真时,当值为假时,图形被更新图停止。按下 UI 中的按钮时的布尔值变化。
boolean updateGraph = true;
if(updateGraph=true){
series.appendData(new DataPoint(countx++, usedramd), true, 60);
}
然后使用按钮更改 boolean updateGraph 的值。
我需要在 running.I 使用 GraphView
库时暂停并在中间开始绘制折线图。我的折线图显示图表 correctly.I 需要实施暂停并从它有 paused.How 的点开始?
提前谢谢你..
我在下面添加了我的代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.fhrlistitemgraph);
String data = getIntent().getExtras().getString("data");
GraphView graph = (GraphView) findViewById(R.id.llgraphview);
series = new LineGraphSeries<DataPoint>();
graph.addSeries(series);
// customize a little bit viewport
Viewport viewport = graph.getViewport();
viewport.setYAxisBoundsManual(true);
viewport.setMinY(0);
viewport.setMaxY(200);
//viewport.setYAxisBoundsManual(true);
viewport.setScalable(true);
viewport.setScrollable(true);
}
@Override
protected void onResume() {
super.onResume();
// we're going to simulate real time with thread that append data to the
// graph
new Thread(new Runnable() {
@Override
public void run() {
String value = null;
String[] data = data.replaceAll("\[", "").replaceAll(" ", "").replaceAll("\]", "").split(",");
// we add 100 new entries
for (int i = 0; i < data.length; i++) {
final int j;
j=i;
value = data[i];
final String values;
values = value;
runOnUiThread(new Runnable() {
@Override
public void run() {
addEntry(j,values);
}
});
// sleep to slow down the add of entries
try {
Thread.sleep(600);
} catch (InterruptedException e) {
// manage error ...
}
}
}
}).start();
}
private void addEntry(int i,String value) {
// here, we choose to display max 10 points on the viewport and we
// scroll to end
series.appendData(new DataPoint(i, Integer.valueOf(value)), true, 5);
}
如果您停止线程,您甚至会停止图形,当您重新启动线程时,图形也会重新启动以显示数据。 您可以使用 UI 中的按钮来停止线程。
在我的例子中,我插入了一个布尔值来停止图形的更新,因为线程不仅是那个,而且还有他们需要的其他计算,当值为真时,当值为假时,图形被更新图停止。按下 UI 中的按钮时的布尔值变化。
boolean updateGraph = true;
if(updateGraph=true){
series.appendData(new DataPoint(countx++, usedramd), true, 60);
}
然后使用按钮更改 boolean updateGraph 的值。