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

Contrôle de la plage de valeurs dynamique personnalisé pour Android

Voyons d'abord l'effet:

1. Étape d'ajout des bibliothèques dépendantes

1.Le fichier gradle du projet doit être modifié comme suit

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

2.Ajouter la bibliothèque de dépendance de la dernière version, la dernière version est comme suit, modifiez simplement la version à la fin (parce que parfois, je met à jour la version et je oublierais de modifier le readme)

dependencies {
   compile 'com.github.Brioal:BrioalSetting:1.0'
   ////Par exemple, la dernière version la plus récente est1.1, il suffit de1.0 à1.1Vous pouvez utiliser la dernière version
 }

Deuxièmement, les étapes d'utilisation:

1.fichier de conception XML

Dans le processus d'utilisation réel, j'ai découvert que si elle est utilisée avec d'autres composants, l'événement de glissement est inefficace, je n'ai pas trouvé comment le résoudre dans le code, je n'ai pas réussi à résoudre le problème en définissant le focus, etc. Une solution temporaire consiste à ajouter un conteneur parent au composant et à ne pas inclure d'autres composants, comme suit:

<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.code setting

mRangeBar = (RangeBar) findViewById(R.id.main_container);
   //Ajouter la source de données
  final List<RangeEntity> list = new ArrayList<>();
  //Le texte à afficher et la valeur réelle, respectivement de type String et 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));
  //Définir la source de données
  mRangeBar.setValues(list);
  //Ajouter un écouteur de changement de plage
  mRangeBar.addOnRangeChangedListener(new OnRangeChangedListener() {
   @Override
   public void selected(int startIndex, int endIndex) {
   //
     + "
    mTvMax.setText(list.get(endIndex).getValue() + "
   }
  });

3Méthodes fournies pour la vue personnalisée

Méthode Fonction
void addOnRangeChangedListener(OnRangeChangedListener listener) Définit l'écouteur d'événement
void setLineColor(int lineColor) Définit la couleur de la ligne centrale
void setLineWidth(int lineWidth) Définit la largeur de la ligne centrale
void setCircleColor(int circleColor) Définit la couleur du contour du point
void setCircleRadius(int circleRadius) Définit le rayon du point
void setCircleWidth(int circleWidth) Définit la largeur de la ligne du point
void setCenterColor(int centerColor) Définit la couleur de remplissage du point sélectionné
void setPointColor(int pointColor) Définit la couleur de remplissage du curseur
void setStartIndex(int startIndex) Définit l'indice de début sélectionné
int getStartIndex() Obtient l'indice de début sélectionné
void setEndIndex(int endIndex) Définit l'indice de fin
int getEndIndex() Obtient l'indice de fin

Résumé

Ceci est le contenu intégral de cet article, j'espère que cet article pourra apporter un certain aide à votre apprentissage ou à votre travail. Si vous avez des questions, vous pouvez laisser des commentaires pour échanger.

Vous pourriez aussi aimer