GraphView错误的x轴视口

时间:2018-07-12 12:46:07

标签: java android kotlin android-graphview

我正在尝试使用jjoe64的GraphView库制作一个图形视图,在x轴上显示日期,在y轴上显示数字,但是我遇到了一些麻烦...

  1. DataPoint希望使用Date或Double作为输入。该文档说它通过Date#getTime()自动将Dates转换为Doubles,但是Date#getTime()(在Java中)输出Long。因此,我必须为DataPoint手动将Long转换为Double ...

  2. 我将水平标签的数量设置为3,并设置了MinX和MaxX,但是只显示第一个日期。为什么不显示其他两个日期?

  3. 按照文档中的说明将HumanRounding设置为false后,我的应用程序将冻结,直到其终止。为什么会这样?

  4. 当我未将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

使用xAxxisBoundsManial(false)的图形的屏幕截图: 截图:
screenshot

0 个答案:

没有答案