上一篇讲了图表的交互以及监听的回调,这篇咱们讲一下图表的高亮!
上一篇:MPAndroidChart的详细使用——图表的交互
下一篇:MPAndroidChart的详细使用——坐标轴(X轴、Y轴、零线)
一、开启 / 关闭图表的高亮显示
setHighlightPerDragEnabled(boolean enabled) | 设置为true时允许在图表缩到最小时,每次拖动都会高亮显示。默认值:true |
---|---|
setHighlightPerTapEnabled(boolean enabled) | 设置为false时防止通过点击手势高亮显示,但仍可以通过拖动或代码设置方式高亮显示。默认值:true |
setMaxHighlightDistance(float distanceDp) | 设置最大点击高亮距离。在图表上点击时,超过此距离就不会触发高亮显示。默认:500 dp |
除此之外,高亮显示还可以自定义:
dataSet.setHighlightEnabled(true); | 是否允许突出显示数据集 |
---|---|
dataSet.setDrawHighlightIndicators(true); | 是否有高亮指示器 |
dataSet.setHighlightColor(Color.BLACK); | 设置高亮的颜色 |
二、用代码的形式显示高亮
highlightValue(float x, int dataSetIndex, boolean callListener) | 通过给的在dataset中的x位置,去高亮数据。dataSetIndex给-1时,将会禁止一切高亮,布尔值的callListener标识是否允许监听回调 |
---|---|
highlightValue(Highlight high, boolean callListener) | 突出显示所提供的值。Highlight对象。提供NULL以撤消所有突出显示。布尔标志决定选择侦听器是否应该被调用。 |
highlightValues(Highlight[] highs) | 高亮显示Highlight[]中的数据。提供null或空数组来撤消所有突出显示。 |
getHighlighted() | 返回Highlight[]数组,该数组包含关于所有高亮显示的条目、在x的位置和DataSet中的位置。 |
三、回调
OnChartValueSelectedListener,用于通过触摸高亮显示值时的回调,只需要实现接口并且将其设置为图表的监听器就行
public interface OnChartValueSelectedListener {
//选中一处高亮时的回调
public void onValueSelected(Entry e, Highlight h);
//没有选中时的回调
public void onNothingSelected();
}
四、高亮类
高亮类表示与高亮的Entry,例如突出显示的Entry对象本身,它在绘图表面的位置等等。可以用来获取关于已经高亮显示的信息。或用于向图表或Entry对数据高亮。
直接看实例:
//标准的高亮构造函数
public Highlight(float x, int dataSetIndex) { ... }
//给柱状图(条形图)使用的高亮构造函数
public Highlight(float x, int dataSetIndex, int stackIndex) { ... }
五、自定义高亮
setHighlighter(ChartHighlighter highlighter)把你自定义的高亮类传入即可实现自定义高亮