android - 实时绘制折线图
问题描述
我需要实时对图表进行 taracing,绘制的数据是记录在 android 数据库中的值,我想恢复这些数据以实时将其绘制在 Line ghraph 中,也就是说,我收到的每一刻它们将在图表中处理的数据是我用于实时绘图的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHandler = new Handler();
setContentView(R.layout.activity_graphe);
lineChart = findViewById(R.id.graph);
dataset.clear();
lineChart.clear();
// mHandler.post(runnableCode);
h = new Helper(this);
db = h.getWritableDatabase();
// h.AddContact(c.getId(),c.getNom());
linedataset.setLineWidth(4);
linedataset.setLabel("dataset1");
autoUpdate = new Timer();
autoUpdate.schedule(new TimerTask() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
linedataset.setValues(getDatavalues());
dataset.add(linedataset);
linedata = new LineData(dataset);
lineChart.setData(linedata);
lineChart.invalidate();
}
});
}
}, 0, 1000); // updates each 2 sec
}
不幸的是,这在正确的方向上不起作用,因为绘制的每个值都会重复几次,例如值 60 将被绘制 3 次,然后它将传递到下一个值,直到应用程序停止。是否缺少某些内容或是否有其他方法可以进行实时同步?
解决方案
推荐阅读
- pytorch - 从统一数据的最大池中提取索引
- office365 - Exchange 邮箱迁移到 office365 卡在同步/进行中
- java - 应使用 lambda 删除未使用的方法参数 (squid:S1172) 误报
- javascript - Javascript:需要帮助编写树视图(来自 JSON 或嵌套类列表)
- r - 在 USGS 的 *dataRetrieval* 包中使用 *whatNWISdata* 函数时出错:必须命名查询的所有组件
- java - 使用 Java 的 Azure Key Vault 证书管理
- java - 如何在 actionperformed 方法中“刷新” JFrame?
- r - 有没有办法在不使用 for 循环的情况下创建这种类型的向量?
- reactjs - 如何在 React 的多个 div 中调用相同的函数?
- c# - 在脚本任务中使用 oledb 读取 excel 文件