Масштабирование оси X в Android Android через панель поиска - PullRequest
0 голосов
/ 17 октября 2018

В графике андроида 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();
    }
}
...