美文网首页MPAndroidChartAndroid知识Android开发
MPAndroidChart中文翻译(三高亮显示)

MPAndroidChart中文翻译(三高亮显示)

作者: 鹿小纯0831 | 来源:发表于2016-10-11 15:31 被阅读771次

本节的重点是高亮显示图表条目,在发布的3.0.0版本中通过点击手势和编程可以实现该目的。

启用/禁用高亮显示
  • setHighlightPerDragEnabled(boolean enabled):设置为true,当图表完全缩小的时候,每一次拖动都会高亮显示在图标视图上。默认值:true。
  • setHighlightPerTapEnabled(boolean enabled):设置为false,禁止点击手势高亮显示值。值仍然可以通过拖动或编程方式突出显示。默认值:true。
  • setMaxHighlightDistance(float distanceDp):设置最大高亮距离(dp)。在图表中的点击位置距离条目的距离超过此距离不会触发高亮显示。默认值:500 dp。
    除此之外,高亮显示可以配置为个人DataSet对象:
dataSet.setHighlightEnabled(true); // allow highlighting for DataSet 
// set this to false to disable the drawing of highlight indicator (lines) 
dataSet.setDrawHighlightIndicators(true); 
dataSet.setHighlightColor(Color.BLACK); // color for highlight indicator 
// and more...
高亮编程
  • highlightValue(float x, int dataSetIndex, boolean callListener):高亮显示在给定的DataSet中x坐标所对应的值。设置dataSetIndex为-1会撤销所有高亮显示。callListener决定了是否调用选择监听器。
  • highlightValue(Highlight high, boolean callListener):高亮显示的值代表了给定的Highlight对象 。提供null撤销所有高亮显示。callListener决定了是否调用选择监听器。
  • highlightValues(Highlight[] highs):高亮显示的值代表了给定的Highlight对象数组。提供null或空数组撤消所有高亮显示。
  • getHighlighted():返回一个高亮数组,其中包含所有高亮显示的条目信息,x-index和dataset-index。
选择回调

这个库提供了许多交互时回调函数的监听器。其中一个是OnChartValueSelectedListener,当触摸引发高亮显示时回调:

public interface OnChartValueSelectedListener { 
      /** 
       * Called when a value has been selected inside the chart. 
       * @param e The selected Entry.
       * @param h The corresponding highlight object that contains information
       * about the highlighted position 
       */ 
      public void onValueSelected(Entry e, Highlight h); 
      /** 
       * Called when nothing has been selected or an "un-select" has been made. 
       */ 
      public void onNothingSelected();
}

接下来就是实现这个接口和回调函数:

chart.setOnChartValueSelectedListener(this);
Highlight类

Highlight类代表与高亮显示的条目相关联的所有数据,比如高亮显示的Entry对象本身,它从属于的DataSet,它在绘图表面上的位置等等。它可以用来获取已经高亮显示的条目的相关信息,或用于提供信息图表的一个条目被高亮显示。对于这个目的,强调类提供了两个构造函数:

/** constructor for standard highlight */
 public Highlight(float x, int dataSetIndex) { ... } 
/** constructor for stacked BarEntry highlight */ 
public Highlight(float x, int dataSetIndex, int stackIndex) { ... }

可以使用这些构造函数创建一个Highlight对象,允许以编程方式表现高亮:

// highlight the entry and x-position 50 in the first (0) 
DataSetHighlight highlight = new Highlight(50f, 0); 
chart.highlightValue(highlight, false); // highlight this value, don't call listener
定制的萤光笔

所有高亮手势形式的用户输入由默认的ChartHighlighter类内部处理。想要自定义一个荧光笔来替换默认的萤光笔,可以通过以下方法来实现:

  • setHighlighter(ChartHighlighter highlighter):为图表设置一个自定义highligher对象来处理所有在图表视图上执行的高亮触摸事件。定制highlighter对象需要继承ChartHighlighter类。

相关文章

网友评论

    本文标题:MPAndroidChart中文翻译(三高亮显示)

    本文链接:https://www.haomeiwen.com/subject/gltbyttx.html