Я использую метод ChartFactory.getTimeChartView из превосходной библиотеки achartengine. Я показываю записи только за последнюю неделю, позволяя пользователю перемещаться влево для просмотра предыдущих записей, используя свойство renderer.setXAxisMin(OneWeekBefore);
.
У меня есть 2 вопроса:
a) Как разрешить масштабирование по оси X в TimeChart?
Я не могу масштабировать по оси X, несмотря на то, что масштабирование включено как для оси X, так и для оси Y. Я мог бы использовать пределы масштабирования и панорамирования ненадлежащим образом, но не могу понять, что и почему.
б) Как изменить поведение кнопки масштабирования?
Я хотел бы изменить поведение кнопки масштабирования 1:1. При нажатии этой кнопки отображается весь график, а не только последняя неделя.
Вот фрагмент кода для настройки свойств масштабирования:
// ZOOM
double[] panlimits = new double[] { XfirstRecord , maxdate, 0.0, Ymax * 1.2 };
renderer.setZoomEnabled(enabledXzoom, YenabledYzoom);
renderer.setZoomButtonsVisible(showZoomButtons);
renderer.setZoomRate(ZoomRate);
renderer.setPanLimits(panlimits);
renderer.setZoomLimits(panlimits);
renderer.setXAxisMin(OneWeekBefore);
Рабочее обновление после проверки ответа Дэна, как показано ниже, у меня это работает:
// ZOOM
double[] panlimits = new double[] { XfirstRecord, now, 0.0, Ymax * 1.2 };
renderer.setZoomEnabled(XenabledZoom, YenabledZoom);
renderer.setZoomButtonsVisible(showZoomButtons);
renderer.setZoomRate(ZoomRate);
renderer.setPanLimits(panlimits);
renderer.setZoomLimits(panlimits);
// SHOW ONLY last WEEK even after Zoom reset
renderer.setXAxisMin(OneWeekBefore);
renderer.setInitialRange(new double[] {OneWeekBefore, now, 0.0, Ymax * 1.2});