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

Controlador de efecto de rango dinámico personalizado en Android

Veamos primero el efecto:

1. Paso de agregar bibliotecas dependientes

1.El archivo gradle del proyecto debe realizarse la siguiente modificación

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

2.Agregar la biblioteca de dependencias de la última versión, como se muestra a la derecha, modificar la versión al final (porque a veces actualizo la versión y olvido modificar el readme)

dependencies {
   compilar 'com.github.Brioal:BrioalSetting:1.0'
   ////Por ejemplo, la última versión es1.1, entonces solo hay que cambiar1.0 cambiado a1.1para usar la última versión
 }

Segundo, pasos de uso:

1.archivo de diseño xml

En el uso real, se descubrió que si se usa junto con otros componentes, los eventos de deslizamiento se inactivan, no se encontró cómo solucionarlo en el código, establecer el enfoque no ayuda, la solución temporal es agregar un contenedor de padre al componente y no incluir otros componentes, como se muestra a continuación:

<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.Configuración de código

mRangeBar = (RangeBar) findViewById(R.id.main_container);
   //Agregar fuente de datos
  final List<RangeEntity> list = new ArrayList<>();
  //El texto a mostrar y el valor real, respectivamente, son de tipo String y 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));
  //Establecer fuente de datos
  mRangeBar.setValues(list);
  //Agregar escucha de cambio de rango
  mRangeBar.addOnRangeChangedListener(new OnRangeChangedListener() {
   @Override
   public void selected(int startIndex, int endIndex) {
   //
     + "
    mTvMax.setText(list.get(endIndex).getValue() + "
   }
  });

3Métodos proporcionados para la vista personalizada.

Método Función
void addOnRangeChangedListener(OnRangeChangedListener listener) Establece el listener del evento
void setLineColor(int lineColor) Establece el color de la línea media
void setLineWidth(int lineWidth) Establece el ancho de la línea media
void setCircleColor(int circleColor) Establece el color del borde del punto
void setCircleRadius(int circleRadius) Establece el radio del punto
void setCircleWidth(int circleWidth) Establece el ancho de la línea del punto
void setCenterColor(int centerColor) Establece el color de relleno del punto seleccionado
void setPointColor(int pointColor) Establece el color de relleno del cursor
void setStartIndex(int startIndex) Establece el índice de inicio seleccionado
int getStartIndex() Obtiene el índice de inicio seleccionado
void setEndIndex(int endIndex) Establece el índice final
int getEndIndex() Obtiene el índice final

Resumen

Este es el contenido completo del artículo, espero que este artículo pueda ayudar a algunos de ustedes en su aprendizaje o trabajo. Si tienen alguna pregunta, pueden dejar un comentario para discutir.

Te gustará