如何在 MP 图表 Android 中的轴值下方添加图标?

问题描述

我已经设置了我的 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
    }

解决方法

我通过扩展 MP 图表库的 XAxisRenderer 类并像这样覆盖 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)
    }
}