仓库:https://github.com/PhilJay/MPAndroidChart
问题:使用折线图或者柱状图,横坐标的文字可能会很长,进而出现折叠的状态。
解决办法:issue里已经有很多:https://github.com/PhilJay/MPAndroidChart/issues?q=overlap
主要有两种解决办法:
可参考:https://github.com/PhilJay/MPAndroidChart/issues/3298
1、将横坐标文本倾斜一定角度(这种解决方法适用于横坐标长度一致,比如都是日期)
2、增大横坐标展示的颗粒度,比如每5条展示横坐标的值
最终解决办法:
a、在横坐标展示有限的字符,当字符超过5个时,显示省略号
b、默认只显示3个柱形。可以左右滑动
c、点击柱形,上方显示具体的值。
//参考代码:
xAxis.valueFormatter = IndexAxisValueFormatter(xValue)
val mv = XYMarkerView(activity, xAxis.valueFormatter)
mv.chartView = barChart
barChart.marker = mv
xAxis.valueFormatter = object :ValueFormatter(){
override fun getFormattedValue(value: Float): String {
return if (value >= 0) {
getLimitString(xValue[value.toInt()], 5)
} else {
""
}
}
}
var m = Matrix()
m.postScale(xAxis.labelCount / 2.5f, 1f)
barChart.viewPortHandler.refresh(m, barChart, false)