【问题标题】:Changing circle color in line chart using mpandroid使用 mpandroid 更改折线图中的圆圈颜色
【发布时间】:2016-04-15 20:35:19
【问题描述】:

我正在尝试监听对折线图上特定圆圈的点击,以便其(被点击的圆圈的)颜色在点击时发生变化。

这是我尝试过的:

LineDataSet  set1 = new LineDataSet(yVals, "DataSet 1");

@Override
public void onValueSelected(Entry entry, int i) {
    set1.setCircleColorHole(Color.GREEN);  
}

目前发生的情况是,点击后,所有圆圈的颜色都会发生变化。应该发生的是只有被点击的圆圈 - 它的颜色应该改变。

【问题讨论】:

  • 我对 android 几乎一无所知,但看起来您为整个数据集而不是单个项目调用 setFillColor
  • 但是如何为单个实体设置circlecolorhole?

标签: android mpandroidchart


【解决方案1】:

您当前正在为set1 设置颜色,这是整个数据集。这就是为什么您报告所有圆圈的颜色都在变化。您需要这样做,但要针对单个实体。

根据OnChartValueSelectedListener 的文档,可以重写方法onValueSelected 以包含一个额外的参数Highlight免责声明我以前从未使用过这个图形库,所以可能需要一些实验。

直接取自此处找到的chart 的源代码(撰写本文时的第 562 行):

https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartLib/src/com/github/mikephil/charting/charts/Chart.java

 /**
 * Highlights the values represented by the provided Highlight object
 * This DOES NOT generate a callback to the OnChartValueSelectedListener.
 *
 * @param highlight contains information about which entry should be highlighted
 */
public void highlightValue(Highlight highlight) {
    highlightValue(highlight, false);
}

理论上,这将突出显示所选值。做类似事情的其他方法具有以下签名:

public void highlightValue(int xIndex, int dataSetIndex)

public void highlightValues(Highlight[] highs)

public void highlightValue(Highlight high, boolean callListener)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2014-05-24
    • 2013-04-25
    • 1970-01-01
    相关资源
    最近更新 更多