我目前正在使用 afreechart 在我的 Android 应用程序中绘制图表。我正在使用他们在示例应用程序中举例说明的 TimeSeries 图表。对我来说,要从两个数据库中提取数据。两个问题: 1. 如何使用我的两个数据库中的值绘制这个时间序列图?2. 整个图表并不像人们想要的那样平滑。特别是在滚动或轻弹时。因此,它与应用程序设计不一致。有什么办法可以让它更流畅吗?
如果上面的问题似乎没有必要或在某种程度上是错误的,请指出我可以使用多个数据库值绘制图形的方法,即使它不使用 afreechart。谢谢。
我尝试在 createDataset() 中使用简单的“for”循环,例如:
private static XYDataset createDataset() {
mfirstDbHelper.open();
msecondDbHelper.open();
int firstdb_count = (int) DatabaseUtils.queryNumEntries(mfirstDbHelper.mDb,firstDbAdapter.DATABASE_TABLE);
int seconddb_count = (int) DatabaseUtils.queryNumEntries(msecondDbHelper.mDb,secondDbAdapter.DATABASE_TABLE);
TimeSeriesCollection dataset = new TimeSeriesCollection();
for(int i=1;i<=seconddb_count;i++){
Cursor seconddb = msecondDbHelper.fetchItem(i);
TimeSeries s1 = new TimeSeries(seconddb.getString(
seconddb.getColumnIndexOrThrow(secondDbAdapter.KEY_ITEMNAME)));
for(int j=1;j<=firstdb_count;j++){
Cursor firstdb = mfirstDbHelper.fetchItem(j);
int first_sp_id = Integer.parseInt(firstdb.getString(
firstdb.getColumnIndexOrThrow(firstDbAdapter.KEY_ID)));
if(first_sp_id == i){
int value = Integer.parseInt(firstdb.getString(
firstdb.getColumnIndexOrThrow(firstDbAdapter.KEY_VALUE)));
String date = firstdb.getString(
firstdb.getColumnIndexOrThrow(firstDbAdapter.KEY_DATE));
String dateParts[] = date.split("-");
String day = dateParts[0];
String month = dateParts[1];
String year = dateParts[2];
int d = Integer.parseInt(day);
int m = Integer.parseInt(month);
int y = Integer.parseInt(year);
s1.add(new Day(d,m,y), value);
dataset.addSeries(s1);
}
firstdb.close();
}
seconddb.close();
}
mfirstDbHelper.close();
msecondDbHelper.close();
return dataset;
}
}
我已将示例中的 Month() 更改为 Day(),并确保该区域没有错误。我收到错误:
ERROR/AndroidRuntime(706): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kev/com.kev.MyProject}: java.lang.NullPointerException
此外,很明显,这段代码一遍又一遍地重绘图形“s1”。我不知道如何克服这个问题,以及错误。我对编程还是相当陌生,尤其是 Android 应用程序开发,所以上面的任何错误,请随意打我的脑袋并更正我的代码。
哦,还有一件事,我不能使用 startManagingCursor() 因为它是 DemoView 而不是 Activity。所以,不知道它是否会导致任何问题。
Afreechart 时间序列示例: http ://code.google.com/p/afreechart/source/browse/#svn%2Ftrunk%2Fafreechart_sample%2Fsrc%2Forg%2Fafree%2Fchart%2Fdemo
Afreechart TimeSeries 示例 - 查看: http ://code.google.com/p/afreechart/source/browse/trunk/afreechart_sample/src/org/afree/chart/demo/view/TimeSeriesChartDemo01View.java
感谢你的宝贵时间。:)