MPAndroidChart X坐标换行问题

MPAndroidChart 的X坐标点文案换行问题应该比较常见,可是墙内搜了一下,好像都不甚直接,有一个自定义改源码的,私觉得小题大作,如下给出解决方案android

效果图

图片描述
>

重点核心

核心代码bash

mBarChart.setXAxisRenderer(CustomXAxisRenderer(mBarChart.viewPortHandler, mBarChart.xAxis, mBarChart.getTransformer(YAxis.AxisDependency.LEFT)))
复制代码

其中mBarChart为BarChart 对象, 假设自定义x坐标的textSize为xAxis.textSize = 12f 须要设置底部额外控件提供换行的文字显示的空间 mBarChart.extraBottomOffset = 3 * 12f,其中12就是刚刚设置的xAxis.textSize 其中3表示个人X坐标文字有3行ide

/**图表X坐标文字换行解决方案 setExtraBottomOffset + 自定义 CustomXAxisRenderer
     * https://stackoverflow.com/questions/32509174/in-mpandroidchart-library-how-to-wrap-x-axis-labels-to-two-lines-when-long
     */
    class CustomXAxisRenderer(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) {
            val lines = formattedLabel.split("\n")
            for (i in lines.indices) {
                val vOffset = i * mAxisLabelPaint.textSize
                Utils.drawXAxisValue(c, lines[i], x, y + vOffset, mAxisLabelPaint, anchor, angleDegrees)
            }
        }
    }

复制代码
相关文章
相关标签/搜索