MPAndroidChart相关API使用说明

开源项目MPAndroidChart的相关使用说明,非常强大的一个开源库。

GitHub - PhilJay/MPAndroidChart: A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.

1. xx.setViewPortOffsets

设置图表图表位置,因为有时候我们的图表可能数值有被遮挡住的问题

或者设置x轴setAvoidFirstLastClipping

2. 设置左边Y轴在图表中完全显示

首先设置
axisLeft.setPosition(YAxisLabelPosition.INSIDE_CHART)

这个时候顶部和底部的刻度显示会被挡住部分,而且不是完全在图表内部,

还要设置 xx.rendererLeftYAxis = YAxisRenderer

当然YAxisRenderer得自定义了。

3.设置覆盖层marker

chart.marker = MarkerView

markerView.chartView = chart

至于覆盖层MarkerView要显示成啥样,最好还是自己自定义。

4. 设置marker跟随手指显示

当然首先是得设置marker,然后记得设置 dragEnable,比如下面设置跟随x轴显示

isDragYEnabled = false
isDragXEnabled = true

5.高亮手指点击位置

注意,当使用CombinedChart图表中有多个折线或者其他图表时,默认会高亮距离手指最近的那个图表.

如果要实现同时高亮一个轴上的所有图表,不管是一个chart还是多个chart的话,得另外设置图表联动高亮。

// 折线图属性设置多一些,柱状图就没那么多属性了,因为不适合高亮
LineDataSet(entries, "line").apply {
    isHighlightEnabled = true
    enableDashedHighlightLine(6f, 4f, 0f)
    setDrawHorizontalHighlightIndicator(false)
    setDrawVerticalHighlightIndicator(true)
    lineWidth = 1.2f
    setDrawHighlightIndicators(true)
}

// 设置监听
chart.apply {
    setOnChartValueSelectedListener(object : OnChartValueSelectedListener {
                override fun onValueSelected(e: Entry?, h: Highlight?) {
                    h?.let {
                        val highlightFirst = Highlight(it.x, it.y, 0)
                        // 注意一定得设置为0,不然marker配合一起显示会导致崩溃,别问我是怎么知道的-_-!!
                        highlightFirst.dataIndex = 0
                        val highlightSecond = Highlight(it.x, it.y, 1)
                        highlightSecond.dataIndex = 0
                        highlightValues(arrayOf(highlightFirst, highlightSecond))
                        val bartHighlight = Highlight(h.x, h.y, 0)
                        bartHighlight.dataIndex = 0
                        barChart.highlightValues(arrayOf(bartHighlight))
                    }
                }

                override fun onNothingSelected() {
                    barChart.highlightValue(null)
                }
            })

}

6.实现两图联动

// 实现两图联动
            // 把折线图的手势传递给柱状图
            lineChart.onChartGestureListener = CoupleChartGestureListener(lineChart, arrayOf(barChart))
            // 把柱状图的手势传递给折线图
            barChart.onChartGestureListener = CoupleChartGestureListener(barChart, arrayOf(lineChart))

class CoupleChartGestureListener : OnChartGestureListener {}

7. x轴上的标签第一个或最后一个显示不完整

setAvoidFirstLastClipping(boolean enabled) : 如果设置为true,则在绘制时会避免“剪掉”在x轴上的图表或屏幕边缘的第一个和最后一个坐标轴标签项

8.移除chart默认的各种边距

chart.minOffset = 0f

9.设置内部边距

axisLeft.spaceTop,axisLeft.spaceBottom

10.extraTopOffset等会影响markerview是否显示,计算的时候会判断点是否在区域内

11.如果X轴底部显示不完整可以设置偏移量

setExtraBottomOffset(3f)

12.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值