在我的应用程序中,我正在使用GraphView库来创建LineGraphView。它显示了从18.01到30.01的示例中指定日期的数据。当我更改边界时,例如从25.01更改为29.01 GraphView更新图表(剪切不需要的行)但仍显示错误的x轴数据(18.01到30.01),但是当用户开始与图表交互(缩放,滚动)时,它会更新它的x轴,一切都很好。有没有一种方法可以强制GraphView更新它的x轴? 如果用户在更改日期之前已经与图表进行交互(缩放,滚动),如果没有正确的交互graphview更新,我只遇到了这个问题。我正在以这种方式创建图表:
在onCreate中:
mGraphView = new LineGraphView(this, "Temperature Measurements");
我从数据库中获取数据时创建图表的功能:
public void createChart(Cursor cursor) {
GraphViewData[] values = new GraphViewData[cursor.getCount()];
while (cursor.moveToNext()) {
String time = cursor.getString(cursor
.getColumnIndex(MeasurementEntry.DATE_IN_MINUTES));
String temp = cursor.getString(cursor
.getColumnIndex(MeasurementEntry.TEMPERATURE));
values[cursor.getPosition()] = new GraphViewData(
Double.parseDouble(time), Double.parseDouble(temp));
}
mGraphView.removeAllSeries();
mGraphView.addSeries(new GraphViewSeries(values));
mGraphView.setScalable(true);
mGraphView.getGraphViewStyle().setTextSize(15);
final SimpleDateFormat formatter = new SimpleDateFormat(
"dd.MM.yyyy HH:mm");
mGraphView.setCustomLabelFormatter(new CustomLabelFormatter() {
@Override
public String formatLabel(double value, boolean isValueX) {
if (isValueX) {
return formatter.format(new Date((long) value));
}
return null;
}
});
}
以下是问题的屏幕截图:
答案 0 :(得分:0)
好的,所以我做了,但我认为它可以做得更好,我做的是从父布局中删除graphView,创建新的graphview并添加新的graphview - 每次用户改变边界时我都会这样做。也许它会帮助某人(createChart方法的简短片段,容器是我的父布局):
container.removeView(mGraphView);
mGraphView = new LineGraphView(this, "Temperature Measurements");
container.addView(mGraphView);
mGraphView.removeAllSeries();
mGraphView.addSeries(new GraphViewSeries(values));
mGraphView.setScalable(true);
mGraphView.getGraphViewStyle().setTextSize(15);