MpAndroidChart中xAxis上的自定义标签指示器
我正在使用一个名为MPAndroidChart的图表库,它响应了我的大部分需求。但是,我需要定制一些部件MpAndroidChart中xAxis上的自定义标签指示器,android,mpandroidchart,Android,Mpandroidchart,我正在使用一个名为MPAndroidChart的图表库,它响应了我的大部分需求。但是,我需要定制一些部件 我想为xAxis上的标签画一些指示线,如下所示: 当我深入研究时,我可以编写一个CustomAxisRenderer,但似乎我需要复制大多数super类代码 我希望在xAxis上精确绘制最小值。该最小值可以是0或任何其他数字 如何做到这一点?甚至有可能做到吗 任何帮助或提示都将不胜感激。我解决了第一个问题: internal class IndicatorAxisRenderer(
xAxis
上的标签画一些指示线,如下所示:CustomAxisRenderer
,但似乎我需要复制大多数super
类代码
xAxis
上精确绘制最小值。该最小值可以是0或任何其他数字任何帮助或提示都将不胜感激。我解决了第一个问题:
internal class IndicatorAxisRenderer(
viewPortHandler: ViewPortHandler,
xAxis: XAxis,
trans: Transformer
) : XAxisRenderer(viewPortHandler, xAxis, trans) {
private var indicatorWidth = 1f
private var indicatorHeight = 1f
private fun getXLabelPositions(): FloatArray {
var i = 0
val positions = FloatArray(mXAxis.mEntryCount * 2)
val centeringEnabled = mXAxis.isCenterAxisLabelsEnabled
while (i < positions.size) {
if (centeringEnabled) {
positions[i] = mXAxis.mCenteredEntries[i / 2]
} else {
positions[i] = mXAxis.mEntries[i / 2]
}
positions[i + 1] = 0f
i += 2
}
mTrans.pointValuesToPixel(positions)
return positions
}
override fun renderAxisLine(c: Canvas?) {
super.renderAxisLine(c)
val positions = getXLabelPositions()
var i = 0
while (i < positions.size) {
val x = positions[i]
if (mViewPortHandler.isInBoundsX(x)) {
val y = mViewPortHandler.contentBottom()
c?.drawLine(
x, y,
x, y + indicatorHeight,
mAxisLinePaint
)
}
i += 2
}
}
fun setIndicatorSize(width: Float, height: Float) {
this.indicatorWidth = width
this.indicatorHeight = height
}
}
内部类指示符(
viewPortHandler:viewPortHandler,
xAxis:xAxis,
变压器
):XAxisRenderer(viewPortHandler、xAxis、trans){
专用变量指示器宽度=1f
专用var指示器灯=1f
private fun getXLabelPositions():FloatArray{
变量i=0
val位置=浮点数组(mXAxis.mEntryCount*2)
val CenterInEnabled=mXAxis.isCenterAxisLabelsEnabled
而(i
这段代码在xAxis的顶部呈现指示符行