MPAndroidChart 教程:突出显示值 Highlighting Values

简介: 本节主题是重点介绍通过tap-gesture和基于发行版v3.0.0以编程方式突出显示图表中条目。启用/禁用突出显示setHighlightPerDragEnabled(boolean enabled):在Chart 上将此设置为true,以便在完全缩小时在图表表面上进行每次拖动时突出显示,默认值:true setHighlightPerTapEnabled(boolean enabled):在Chart 上将此设置为false,以防止通过点击手势突出显示值。

本节主题是重点介绍通过tap-gesture和基于发行版v3.0.0以编程方式突出显示图表中条目。

启用/禁用突出显示

  • setHighlightPerDragEnabled(boolean enabled):在Chart 上将此设置为true,以便在完全缩小时在图表表面上进行每次拖动时突出显示,默认值:true
  • setHighlightPerTapEnabled(boolean enabled):在Chart 上将此设置为false,以防止通过点击手势突出显示值。仍可通过拖动或以编程方式突出显示值,默认值:true
  • setMaxHighlightDistance(float distanceDp):设置dp中的最大高亮距离。在图表上轻敲远离条目的距离不会触发突出显示。默认值:500dp

除此之外,还可以为单个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坐标的值。提供-1作为dataSetIndex以撤消所有突出显示。布尔标志确定应该调用选择监听器还是不调用选择侦听器。
  • highlightValue(Highlight high, boolean callListener):突出显示提供的Highlight对象所代表的值。提供null以撤消所有突出显示。布尔标志确定应该调用选择侦听器还是不调用选择监听器。
  • highlightValues(Highlight[] highs):突出显示给定Highlight[]数组表示的值。提供null或空数组以撤消所有突出显示。
  • getHighlighted():返回一个Highlight[]数组,其中包含有关所有突出显示的条目,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关联的所有数据,例如突出显示的Entry对象本身,它所属的DataSet,它在绘图表面上的位置等等。它可用于获取有关已突出显示的条目的信息,或用于向图表提供信息以突出显示条目。为了这个目的,Highlight该类提供了两个构造函数:

 /** 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) DataSet
Highlight highlight = new Highlight(50f, 0); 

chart.highlightValue(highlight, false); // highlight this value, don't call listener

定制荧光笔

高亮手势形式的所有用户输入都由默认的ChartHighlighter类在内部处理。可以使用以下方法用自定义实现替换默认的highligher:

  • setHighlighter(ChartHighlighter highlighter):为图表设置自定义highligher对象,以 handles / processes在图表视图上执行的所有高亮触摸事件。您的自定义荧光笔对象需要扩展该ChartHighlighter类。

 

相关文章
|
存储 API Android开发
请解释Android的推送服务,如Firebase Cloud Messaging(FCM)。
请解释Android的推送服务,如Firebase Cloud Messaging(FCM)。
881 0
|
Android开发
【错误记录】Android 应用打包错误 ( Entry name ‘assets/xxx.xml‘ collided )
【错误记录】Android 应用打包错误 ( Entry name ‘assets/xxx.xml‘ collided )
1414 0
【错误记录】Android 应用打包错误 ( Entry name ‘assets/xxx.xml‘ collided )
|
设计模式 Java
Java中的finally一定会被执行吗
在Java中,`finally`块通常会在正常情况下执行,但在特定异常情况下(如调用`System.exit()`、`Runtime.getRuntime().halt()`、死锁、掉电或JVM崩溃)则不会执行。此外,`System.exit()`会触发JVM关闭钩子,而`Runtime.getRuntime().halt()`则不会。面试时遇到疑问句,答案往往是“否定”的,符合这一逻辑。
272 0
Java中的finally一定会被执行吗
|
Android开发 数据格式 XML
Android图表库MPAndroidChart(五)——自定义MarkerView实现选中高亮
Android图表库MPAndroidChart(五)——自定义MarkerView实现选中高亮 在学习本课程之前我建议先把我之前的博客看完,这样对整体的流程有一个大致的了解 Android图表库MPAndroidChart(一)——了解他的本质,方能得心应手...
3697 0
|
Android开发
android.view.WindowLeaked的解决办法
我们知道Android的每一个Activity都有个WindowManager窗体管理器,同样,构建在某个Activity之上的对话框、PopupWindow也有相应的WindowManager窗体管理器。
411 0
|
存储 Java API
|
Android开发
Android | Fragment.setUserVisibleHint()懒加载过时问题优化
Fragment.setUserVisibleHint()懒加载过时问题优化
987 0
|
Android开发
Android中如何动态的调整Dialog的背景深暗
在Android开发中,Dialog和DialogFragment可通过设置`Window`的`backgroundDimAmount`来控制背景变暗,突出对话框。在DialogFragment的`onCreateDialog`或`onViewCreated`中,获取`Dialog`的`Window`,设置`LayoutParams.dimAmount`(例如0.5f)并添加`FLAG_DIM_BEHIND`标志。要动态调整,可保存`LayoutParams`并在需要时更新。对于Dialog,创建时直接设置同样属性。还可以通过定义主题样式设置背景模糊程度。
642 7
|
XML Java Android开发
14. 【Android教程】文本输入框 EditText
14. 【Android教程】文本输入框 EditText
1735 2
|
XML 搜索推荐 Java
28. 【Android教程】自动补全文本框 AutoCompleteText
28. 【Android教程】自动补全文本框 AutoCompleteText
331 2

热门文章

最新文章

下一篇
开通oss服务