Android MPAndroidChart使用,X轴标签换行显示


解决方案: setExtraBottomOffset + 自定义 CustomXAxisRenderer

1.假设自定义x坐标的textSize为xAxis.textSize = 8f,需要设置底部额外控件提供换行的文字显示的空间 chart.extraBottomOffset = 2 * 8f,其中8就是刚刚设置的xAxis.textSize,其中2表示我的X坐标文字有2行。

xAxis.setTextSize(8f);

mLineChart.setExtraBottomOffset(2 * 8f);

2.重写类XAxisRenderer。

private static class CustomXAxisRenderer extends XAxisRenderer {

    public CustomXAxisRenderer(ViewPortHandler viewPortHandler, XAxis xAxis, Transformer trans){

        super(viewPortHandler, xAxis, trans);

}

    @Override

    protected void drawLabel(Canvas c, String formattedLabel, float x, float y, MPPointF anchor, float angleDegrees) {

        //super.drawLabel(c, formattedLabel, x, y, anchor, angleDegrees);//注释掉

        String[] lines = formattedLabel.split("\n");

        for (int i = 0; i < lines.length; i++) {

        float vOffset = i * mAxisLabelPaint.getTextSize();

        Utils.drawXAxisValue(c, lines[i], x, y + vOffset, mAxisLabelPaint, anchor, angleDegrees);

        }

    }

}

3.设置表格属性

mLineChart.setXAxisRenderer(new CustomXAxisRenderer(mLineChart.getViewPortHandler(), mLineChart.getXAxis(), mLineChart.getTransformer(YAxis.AxisDependency.LEFT)));

4.注意

如需进行自定义X轴坐标分行显示,集合对象必须添加 \n 进行分行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容