为了账号安全,请及时绑定邮箱和手机立即绑定

MPAndroidChart X坐标换行问题

标签:
Android

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

效果图

图片描述>

重点核心

核心代码

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行

/**图表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)
            }
        }
    }

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
1万
获赞与收藏
137

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消