English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Реализация контроллера динамического изменения диапазона значений в Android

Сначала посмотрим на результат:

Одно. Шаги добавления библиотеки

1. Внутри файла gradle проекта сделайте следующие изменения

allprojects {
  repositories {
   ...
   maven { url "https://jitpack.io" }
  }
 }

2. Добавьте библиотеку с последней версией, последняя версия как показано справа, измените версию в конце (поскольку я иногда обновляю версию и забываю изменить readme)

dependencies {
   compile 'com.github.Brioal:BrioalSetting:1.0'
   //// Например, если последняя версия - 1.1, то нужно просто изменить 1.0 на 1.1, чтобы использовать последнюю версию
 }

Два. Шаги использования:

1.xml файл макета

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

<LinearLayout>
  android:id="@+id/layout"
android:layout_centerInParent="true"
  android:layout_width="match_parent"
  android:layout_height="wrap_content">
  <com.brioal.rangeseek.view.RangeBar
   android:id="@+id/main_container"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_centerInParent="true"/>
 </LinearLayout>

2. Настройка кода

mRangeBar = (RangeBar) findViewById(R.id.main_container);
   // Добавлены данные источника
  final List<RangeEntity> list = new ArrayList<>();
  // Текст для отображения и фактическое значение,分别是 String и Object
  list.add(new RangeEntity("15℃", 15));
  list.add(new RangeEntity("18℃", 18));
  list.add(new RangeEntity("21℃", 21));
  list.add(new RangeEntity("24℃", 24));
  list.add(new RangeEntity("27℃", 27));
  list.add(new RangeEntity("30℃", 30));
  // Установлены данные источника
  mRangeBar.setValues(list);
  // Добавлен监.listener для изменения диапазона
  mRangeBar.addOnRangeChangedListener(new OnRangeChangedListener() {
   @Override
   public void selected(int startIndex, int endIndex) {
   // Получены начальные и конечные данные в List по соответствующим индексам
    mTvMin.setText(list.get(startIndex).getValue() + ";");
    mTvMax.setText(list.get(endIndex).getValue() + ";");
   }
  });

3. Предоставленные методы для пользовательского интерфейса

Методы Функции
void addOnRangeChangedListener(OnRangeChangedListener listener) Установить слушатель событий
void setLineColor(int lineColor) Установить цвет линии
void setLineWidth(int lineWidth) Установить ширину линии
void setCircleColor(int circleColor) Установить цвет рамки точки
void setCircleRadius(int circleRadius) Установить半径 точки
void setCircleWidth(int circleWidth) Установить ширину линии точки
void setCenterColor(int centerColor) Установить цвет заливки выбранного точки
void setPointColor(int pointColor) Установить цвет заливки курсора
void setStartIndex(int startIndex) Установить начальный индекс выбора
int getStartIndex() Получить начальный индекс выбора
void setEndIndex(int endIndex) Установить индекс завершения
int getEndIndex() Получить индекс завершения

Резюме

Вот и все статьи. Надеюсь, она поможет вам в учебе или работе. Если у вас есть вопросы, оставляйте комментарии для обсуждения.

Рекомендуется вам