Я пытался создать гистограмму, отображающую уровень запасов продуктов питания, уменьшающийся с течением времени.
Я использовал пример кода отсюда:
Я немного изменил код в 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, но код не очень хорошо прокомментирован, и мне трудно все понять.