Как добавить значки ниже значений оси в MP chart Android?

#android #android-layout #mpandroidchart #android-graphview

#Android #android-макет #mpandroidchart #android-graphview

Вопрос:

Я настроил свою mpchart, но одной вещи не хватает,

MP chart

Мне нужно добавить эти красочные индикаторы (чертежи) под осью 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)
    }
}