我正在尝试点击折线图上特定圆圈的点击,以便在点击时更改其(点击的圆圈)颜色。
以下是我的尝试:
LineDataSet set1 = new LineDataSet(yVals, "DataSet 1");
@Override
public void onValueSelected(Entry entry, int i) {
set1.setCircleColorHole(Color.GREEN);
}
目前正在发生的事情是,点击后,所有圆圈的颜色都在变化。应该发生的是只有被点击的圆圈 - 它的颜色应该改变。
答案 0 :(得分:0)
您当前正在为set1
设置整个数据集的颜色。这就是为什么你报告所有圈子'颜色正在改变。您需要为单个实体执行此操作。
根据OnChartValueSelectedListener的文档,可以重写方法onValueSelected
以包含额外参数Highlight
。 免责声明我之前从未使用过此图形库,因此可能需要进行一些实验。
直接来自此处找到的chart
的源代码(撰写本文时第562行):
/**
* 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)