我正在尝试使用jjoe64的GraphView库制作一个图形视图,在x轴上显示日期,在y轴上显示数字,但是我遇到了一些麻烦...
DataPoint希望使用Date或Double作为输入。该文档说它通过Date#getTime()自动将Dates转换为Doubles,但是Date#getTime()(在Java中)输出Long。因此,我必须为DataPoint手动将Long转换为Double ...
我将水平标签的数量设置为3,并设置了MinX和MaxX,但是只显示第一个日期。为什么不显示其他两个日期?
按照文档中的说明将HumanRounding设置为false后,我的应用程序将冻结,直到其终止。为什么会这样?
当我未将xAxisBoundsManual设置为true时,将显示3个日期,但第一个是我从未设置过的日期,并且图形仅在第二个标签处开始,并在早期结束(它不会如果t达到最后一个值,则整个图形将移到右侧的很多位置,而不是从0开始。那是哪里来的(截图)
代码:
val calendar: Calendar = Calendar.getInstance()
val d1 = calendar.time.time.toDouble()
calendar.add(Calendar.DATE, 1)
val d2 = calendar.time.time.toDouble()
calendar.add(Calendar.DATE, 1)
val d3 = calendar.time.time.toDouble()
calendar.add(Calendar.DATE, 1)
val d4 = calendar.time.time.toDouble()
calendar.add(Calendar.DATE, 1)
val d5 = calendar.time.time.toDouble()
val series: LineGraphSeries<DataPoint> = LineGraphSeries(arrayOf(
DataPoint(d1, 0.0),
DataPoint(d2, 5.0),
DataPoint(d3, 3.0),
DataPoint(d4, 7.0),
DataPoint(d5, 0.0)))
graph.addSeries(series)
graph.gridLabelRenderer.labelFormatter = DateAsXAxisLabelFormatter(this)
graph.gridLabelRenderer.numHorizontalLabels = 3
graph.viewport.setMinX(d1)
graph.viewport.setMaxX(d5)
graph.viewport.isXAxisBoundsManual = true
graph.gridLabelRenderer.isHumanRounding = false