Автоматическая горизонтальная прокрутка с помощью ChartEngine - Android

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

У меня пока так:

   mRenderer.setXAxisMin(0);
   mRenderer.setXAxisMax(199);
   mRenderer.setYAxisMin(-2);
   mRenderer.setYAxisMax(3);
   mRenderer.setInScroll(true);
   mRenderer.setPanEnabled(true, false);
   mRenderer.setClickEnabled(false);

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

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


person Gurfuffle    schedule 31.12.2013    source источник


Ответы (2)


Чтобы переместить ось X, вам нужно изменить видимый диапазон оси следующим образом:

mRenderer.setXAxisMin(minX);
mRenderer.setXAxisMax(maxX);

Не забудьте позвонить repaint после того, как сделаете вышеописанное:

mChartView.repaint();
person Dan D.    schedule 03.01.2014
comment
Спасибо за ответы. Что вы подразумеваете под mixX и maxX. Мне нужно, чтобы он прокручивался до самого нового значения. Когда я попробовал этот метод, он просто увеличивает график, чтобы показать эти значения. Вы хотите установить maxX как int, например. до 100, а затем увеличивать его на единицу каждые несколько мс? - person Gurfuffle; 03.01.2014
comment
Поэтому я думаю, вам нужно, чтобы minX оставался равным 0, поэтому его не нужно менять. Значение maxX будет очень близко к последнему добавленному значению или даже к самому значению. - person Dan D.; 03.01.2014
comment
Но я делаю то же самое для своего случая, он не работает, например, у меня есть setXmax (50), когда я меняю значения setMax (100), он должен отображать 100 по оси X, но не отображается. - person Abhijit Chakra; 17.02.2015

Сначала найдите максимальное значение для оси x, скажем, maxX, и максимальное значение для оси y, скажем, maxY.

потом

        mRenderer.setYAxisMax(maxY);
        mRenderer.setXAxisMax(maxX);
        mRenderer.setXAxisMin(0);
        mRenderer.setYAxisMin(0);
person keshav    schedule 10.01.2014