#android #android-layout #mpandroidchart #android-graphview
#Android #android-макет #mpandroidchart #android-graphview
Вопрос:
Я настроил свою mpchart, но одной вещи не хватает,
Мне нужно добавить эти красочные индикаторы (чертежи) под осью x на основе значений y, например, если y> 5, он должен быть зеленым, иначе красным.
val xAxis = lineChart.xAxis
xAxis.apply {
setDrawGridLines(false)
isEnabled = true
position = XAxis.XAxisPosition.BOTTOM
textSize = 12F
textColor = Color.WHITE
}
Ответ №1:
Я добился этого, расширив класс XAxisRenderer библиотеки MP chart и переопределив функцию drawLabel следующим образом
class CustomXAxis(
viewPortHandler: ViewPortHandler?,
xAxis: XAxis?, trans: Transformer?
) : XAxisRenderer(viewPortHandler, xAxis, trans) {
override fun drawLabel(
c: Canvas?,
formattedLabel: String?,
x: Float,
y: Float,
anchor: MPPointF?,
angleDegrees: Float
) {
super.drawLabel(c, formattedLabel, x, y, anchor, angleDegrees)
val drawable = ContextCompat.getDrawable(context, R.drawable.ic_single_bar)
Utils.drawImage(c, drawable, x.toInt(), (y 50).toInt(), 30, 30)
}
}