解決方案: setExtraBottomOffset + 自定義 CustomXAxisRenderer
1.假設(shè)自定義x坐標(biāo)的textSize為xAxis.textSize = 8f,需要設(shè)置底部額外控件提供換行的文字顯示的空間?chart.extraBottomOffset = 2 * 8f,其中8就是剛剛設(shè)置的xAxis.textSize,其中2表示我的X坐標(biāo)文字有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.設(shè)置表格屬性
mLineChart.setXAxisRenderer(new CustomXAxisRenderer(mLineChart.getViewPortHandler(), mLineChart.getXAxis(), mLineChart.getTransformer(YAxis.AxisDependency.LEFT)));