В графике андроида MP есть классная функция под названием «Масштаб X», которая расширяет или сжимает столбцы и ось X в стандартной диаграмме и оси X с помощью жестов двумя пальцами.
То, что я пытаюсь сделать, - это создать функцию, которая в идеале может регулировать масштаб графика с помощью SeekBar (управление ползунком), но проблема с ним - это график (с точки зрения графики), не всегдаНедействителен при сокращении баров в основном при достижении 1.0f (начальное значение шкалы Х для графика).
Основная причина, по которой я хочу эту функцию, состоит в том, чтобы помочь пользователям, которые либо не имеют устройств жестов для масштабирования пальцев, либо предпочитают использовать мыши какого-либо типа (примерами таких устройств являются микро-USB, USB-концентраторы, которые подключаютсявплоть до клавиатур, мышек Bluetooth или компьютеров, работающих на Android, как в Google Pixel Book).
Наконец, вы можете легко подключить этот код ниже и внести эти простые изменения в "BarChartActivity.java" на графике MPAndroid из github
- Я удалил Android-панель поиска XML "android: max ="200" "
- mSeekBarX.setMax (50);
- Set mChart.setScaleXEnabled (true);
- float floatVal - глобальная переменная с начальным значением 0.0f;
Моя реализация onProgressChanged()
:
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
try {
if(progress != 0){
floatVal = 1.0f + progress * 0.1f;
//floatVal = Math.round(floatVal);
System.out.println("Progress #3: val " + floatVal);
mChart.setScaleX(floatVal);
System.out.println("Mchart Scale X value: " + mChart.getScaleX());
//mChart.invalidate();
}
else{
mChart.setScaleX(1.0f);
mChart.invalidate();
}
System.out.println("Progress " + progress);
System.out.println("Seekbar progress " + mSeekBarX.getProgress());
}
catch (Exception e){
e.printStackTrace();
}
}