Я использую библиотеку GraphView (http://www.android -graphview.org / legend / ) для построения моей диаграммы.У меня есть слушатель в моем графике, и цель состоит в том, чтобы начать с нуля точек данных в начале.Я хочу, чтобы при нажатии на определенную позицию на графике отображался значок точки данных с позиции, на которой я щелкнул.
Пример того, что у меня есть:
Диаграмма, которая у меня есть
Пример того, что я хочу:
Диаграмма, которую я хочу
Это мой код:
class MainActivity : AppCompatActivity() {
lateinit var series:LineGraphSeries<DataPoint>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val series = LineGraphSeries(
arrayOf(
DataPoint(9.0, 9.0),
DataPoint(10.0, 10.0),
DataPoint(11.0, 11.0),
DataPoint(12.0, 12.0),
DataPoint(13.0, 13.0),
DataPoint(14.0, 14.0)))
graph.addSeries(series)
var staticLabelsFormatter = StaticLabelsFormatter(graph)
staticLabelsFormatter.setHorizontalLabels(arrayOf<String>("2018", "2019", "2020","2021","2022","2023"))
graph.viewport.isScrollable = true
graph.gridLabelRenderer.gridStyle = GridLabelRenderer.GridStyle.NONE
graph.gridLabelRenderer.isVerticalLabelsVisible = false
graph.gridLabelRenderer.labelFormatter = staticLabelsFormatter
series.color = Color.BLACK
series.thickness = 6
series.isDrawBackground = true
series.isDrawDataPoints = true
series.isDrawDataPoints = false
series.backgroundColor = Color.parseColor("#0D000000")
series.setOnDataPointTapListener { series, dataPoint ->
Toast.makeText(
applicationContext,
"Series1: On Data Point clicked: $dataPoint",
Toast.LENGTH_SHORT
).show()
}
}
}