【发布时间】:2020-01-30 02:31:16
【问题描述】:
我想创建一个带有时间表的小型应用程序。但是由于某种原因,当我在图表中添加很多点时,它根本不会出现,尽管点数很少,但一切正常。
void f() {
ArrayList<Entry> values = new ArrayList<>();
for (int i = x1, index = 0, j = y; i < x2; ++i, ++index)
{
float waveLength = (float) calib_a * i + (float) calib_b;
int pixel = rotated.getPixel(i, j);
float I = (Color.red(pixel) + Color.blue(pixel) + Color.green(pixel)) / 765.0f;
values.add(new Entry((int) waveLength, I));
Log.d("[SPECTRAl]", " WAVE: " +waveLength + " I: " + I);
// i += 4;
}
LineDataSet lineValues = new LineDataSet(values, "");
lineValues.setColor(Color.BLACK);
lineValues.setLineWidth(2f);
LineData line = new LineData(lineValues);
chart.getXAxis().setGranularity(100f);
chart.setData(line);
chart.invalidate();
}
但可以使用:
void f() {
ArrayList<Entry> values = new ArrayList<>();
values.add(new Entry(100, 6));
values.add(new Entry(200, 3));
values.add(new Entry(300, 2));
values.add(new Entry(400, 4));
LineDataSet lineValues = new LineDataSet(values, "");
lineValues.setColor(Color.BLACK);
lineValues.setLineWidth(2f);
LineData line = new LineData(lineValues);
chart.getXAxis().setGranularity(100f);
chart.setData(line);
chart.invalidate();
}
【问题讨论】:
-
您是否尝试在 AS 上运行调试?是否有任何错误,检查您的日志以查看是否有任何错误并在此处发布
-
@RubenMeiring,没有错误。但我注意到,如果你将周期缩短 5 倍,那么点就可以正确显示。
-
那么有可能是循环“超时”,因此尝试微调循环数以获得最大循环数,内存泄漏问题也可能是一个问题,但这是高度不太可能
标签: java android mpandroidchart