MPAndroidChart Wiki(三)

高亮


这个章节将用来讨论chart中的entry高亮的话题,通过手势和代码来控制高亮均需要在v3.0.0及其之后。

开启/关闭高亮

  • setHighlightPerDragEnabled(boolean enabled)将这个方法设置为true将使你的chart在被放到最大的时候,滑动时使得高亮能一直跟着手指。默认:true。
  • setHighlightPerTapEnabled(boolean enabled)将这个方法设置为false可以使得有单击的手势作用在entry上时,不会被高亮显示。默认:true。
  • setMaxHighlightDistance(float distanceDp)设置最大的高亮距离,单位时dp。点击作用在chart上,并离其中某个entry距离所设置的这个距离时,将不会出发高亮显示。默认:500dp。

另外,高亮可以单独地对某一个dataset起作用。

  dataSet.setHighlightEnabled(true); // 允许当前DataSet高亮

  // 将此方法设置为false将不会绘制高亮指示器。(对于线来说)
  dataSet.setDrawHighlightIndicators(true); 
  dataSet.setHighlightColor(Color.BLACK); // 高亮的颜色
复制代码

通过代码高亮

  • highlightValue(float x, int dataSetIndex, boolean callListener)将给定的dataset中的第x个位置的值设置为高亮。传入-1将取消所有的高亮显示。boolean值将决定选择监听器是否会被调用。
  • highlightValue(Highlight high, boolean callListener)highlight对象所表示的值高亮显示。传入null值将取消所有的高亮显示。boolean值将决定选择监听器是否会被调用。
  • highlightValues(Highlight[] highs)Hightlight[]数组中所表示的值高亮显示,传入null或者空数组将取消所有高亮显示。
  • getHighlighted()返回一个Highlight[]数组,其中包含着目前高亮显示的entries,以及它们的x值和dataset的值。

选中回调

这个库提供离一系列的监听器用于在出现交互时进行回调。其中之一就是OnChartValueSelectedListener,当触摸导致高亮显示时进行回调。

public interface OnChartValueSelectedListener {
    /**
    * 当chart中的值被选中时调用此方法
    *
    * @param e 被选中的 Entry.
    * @param h 包含被点击的entry相关信息的highlight对象.
    */
    public void onValueSelected(Entry e, Highlight h);
    /**
    * 当没有任何内容被选中时调用此方法.
    */
    public void onNothingSelected();
}
复制代码

可以使你需要接收回调的类实现这个接口,然后将其设置给chart的这个方法: chart.setOnChartValueSelectedListener(this);

Highlight类

Highlight类表示着一个被高亮显示的Entry的所有数据,如这个entry本身它所属的DataSet,以及其被画在界面上的位置。它可以用来获取一个已经被高亮显示的Entry的信息。或者提供给Chart去高亮显示某个Entry。鉴于这个原因,Highlight提供两个构造器方法。

 /** 标准highlight的构造方法 */
 public Highlight(float x, int dataSetIndex) { ... }

 /** 提供给堆积柱状图BarEntry的构造方法*/
 public Highlight(float x, int dataSetIndex, int stackIndex) { ... }
复制代码

这些构造方法可以用于创造Highlight对象,该对象可以使用代码的方式作用在高亮显示上。

// 将第一个数据集的x值为50的entry高亮显示
Highlight highlight = new Highlight(50f, 0); 

chart.highlightValue(highlight, false); // 高亮显示这个值而不调用选中回调。
复制代码

自定义高亮器

所有的显示高亮的手势均是由默认的ChartHighlighter类内部进行处理。可以通过以下的方法将默认的高亮显示器替换为自定义的实现:

  • setHighlighter(ChartHighlighter highlighter)为chart设置用于处理所有高亮点击事件的自定义高亮器 Wiki。你的自定义的highlighter类需要继承ChartHighlighter类。

转载于:https://juejin.im/post/5b3e45e46fb9a04fc11bea8d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值