Android GraphView Высота гистограммы - PullRequest
1 голос
/ 22 февраля 2012

Я пытался создать гистограмму, отображающую уровень запасов продуктов питания, уменьшающийся с течением времени.

Я использовал пример кода отсюда:

Я немного изменил код в GraphViewDemo для размещения 4 значений на оси Y:

("отлично "," хорошо "," хорошо "и" плохо ") и 4 значения по оси X

(" сегодня "," завтра "," 2 дня "," 3 дня ")

и хочу показать, как уровни запасов уменьшаются с течением времени.Вот код, который должен отображать бары, увеличивающиеся от плохих до больших:

    float[] values = new float[] { 1.0f,1.5f, 2.0f, 2.5f };
    String[] verlabels = new String[] { "great", "good", "ok", "bad"};
    String[] horlabels = new String[] { "today", "tomorrow", "2 days", "3 days" };
    GraphView graphView = new GraphView(this, values, "Stock Levels",horlabels, verlabels, GraphView.BAR);
    setContentView(graphView);

Это хорошо с числами 1.0f, 1.5f, 2.0f, 2.5f.Проблема в том, что если я изменю первый плавающий на 2.0 (ожидая, что первый бар изменится на высоту «хорошо»), все бары изменятся.

В этом случае вид изменится на высоту первого и третьего столбцов, находящуюся между "ок" и "хорошо", а второй столбец будет высотой "плохой".

Возможно, это связано с преобразованием пикселей в классе GraphView рядом со строкой 94, но код не очень хорошо прокомментирован, и мне трудно все понять.

1 Ответ

0 голосов
/ 24 февраля 2012

Кажется, проблема связана с этой строкой в ​​классе GraphView:

canvas.drawRect((i * colwidth) + horstart, (border - h) + graphheight, ((i * colwidth) + horstart) + (colwidth - 1), height - (border - 1), paint);

Итак, я обнаружил, что значения 4 высот, которые столбцы могут иметь на графике («отлично», «хорошо»,«хорошо», «плохо») и создал оператор switch, который установит переменную.Переключатель будет принимать значения 1.0, 1.5, 2.0 и 2.5 и связывать его с соответствующими им высотами столбцов.

Затем я заменил высоту на переменную вместо следующего вычисления "(border-h) +graphheight».Таким образом, бар мог иметь только 4 высоты набора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...