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

本节的重点是高亮显示图表条目,在发布的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类。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • ----------目录一步一步教你写股票走势图——分时图一(概述)一步一步教你写股票走势图——分时图二(自定义x...
    AJiangNo1阅读 2,179评论 0 2
  • 2017年6月1日 周五 晴 BGM:《巴啦啦小李轶》 铁铁生日快乐!(其实,是明天) (我不管我不管)...
    叶玖儿阅读 253评论 0 2
  • 寒冷的冬季终于在我的期待中渐渐离去,春天迈着轻盈的步伐款款走来。难得的周末,适逢是个艳阳天,我不愿在家中消...
    星河白鹭阅读 536评论 0 2
  • 每天每天都会自己的未来所担心,自己没有能力,没有很大的能力赚很多钱,只会不断抱怨自己,埋怨自己。 去找一个像太阳的...
    卒月阅读 122评论 0 0