В LineChart, можно ли установить определенный цвет между значениями?Например, если значение увеличилось или уменьшилось (зеленый / красный) - PullRequest
0 голосов
/ 22 октября 2018

Мне интересно, возможно ли это

image

Так что я могу изменить цвет между 2 значениями, если следующее значение увеличится или уменьшится

РЕДАКТИРОВАТЬ: после anhtuanndкод, это дало мне эту ошибку

Ошибка в «Если»

Я попытался выполнить работу с другим оператором, но единственная работа была «==», ноэто не то, что я ищу

1 Ответ

0 голосов
/ 23 октября 2018

Да, это возможно.

Вы можете создать новый массив цветов (arrayColor [n-1]), размер которого равен числу точек (n) минус 1. Затем переходите от точки 2 к последнейточка п.Если точка (i) больше, чем точка (i-1), то цвет в позиции i-1 является цветом вверх, в противном случае - цветом вниз.Затем вы можете использовать API lineDataSet.setColors (arrayColor);

Псевдокод:

int arrayColor[] = new int[]{};
for (int i = 1; i < lineDataSet.getValues().size(); i++) {
    if (lineDataSet.getValues().get(i) > lineDataSet.getValues().get(i-1)) {
         arrayColor[i-1] = UP_COLOR;
    } else { 
         arrayColor[i-1] = DOWN_COLOR;
    }
}

lineDataSet.setColors(arrayColor);
...