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

Implementazione dell'effetto di determinazione dinamica dell'intervallo di valore in Android

Prima di tutto, vediamo l'effetto:

Primo, le istruzioni per aggiungere le librerie di dipendenza

1. Effettuare le seguenti modifiche nel file gradle del progetto

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

2. Aggiungere la libreria di dipendenza più recente, come mostrato di seguito, modificare semplicemente la versione alla fine (poiché a volte dimentico di aggiornare il readme quando aggiorno la versione)

dependencies {
   compile 'com.github.Brioal:BrioalSetting:1.0'
   //// Ad esempio, se l'ultima versione è 1.1, è sufficiente cambiare 1.0 in 1.1 per utilizzare la versione più recente
 }

Secondo, le istruzioni per l'uso:

1.xml file di layout

Nel processo di utilizzo reale, è stato scoperto che se combinato con altri componenti, l'evento di scorrimento diventa inattivo. Non è stato trovato un modo per risolverlo nel codice, né impostare il focus ha avuto alcun effetto. La soluzione temporanea è aggiungere una layout di padre al componente e non includere altri componenti, come mostrato di seguito:

<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);
  //添加范围改变监听器
  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. Metodi forniti per la vista personalizzata

Metodo Funzione
void addOnRangeChangedListener(OnRangeChangedListener listener) Imposta l'ascoltatore degli eventi
void setLineColor(int lineColor) Imposta il colore della linea centrale
void setLineWidth(int lineWidth) Imposta la larghezza della linea centrale
void setCircleColor(int circleColor) Imposta il colore del contorno del punto
void setCircleRadius(int circleRadius) Imposta il raggio del punto
void setCircleWidth(int circleWidth) Imposta la larghezza della linea del punto
void setCenterColor(int centerColor) Imposta il colore di riempimento del punto selezionato
void setPointColor(int pointColor) Imposta il colore di riempimento del cursore
void setStartIndex(int startIndex) Imposta l'indice di inizio selezionato
int getStartIndex() Ottiene l'indice di inizio selezionato
void setEndIndex(int endIndex) Imposta l'indice di fine
int getEndIndex() Ottiene l'indice di fine

Sommario

Questo è tutto il contenuto dell'articolo. Spero che questo articolo possa aiutare tutti a imparare o lavorare meglio. Se avete domande, potete lasciare un commento per discuterle.

Ti potrebbe interessare