Una biblioteca simple para mostrar un cargador alrededor de los bordes de un chip de material
Uso
poner en root build.gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
en el módulo build.gradle
implementation 'com.github.AbhinavChauhan97:LoaderChip:1.0.4'
Simplemente inserte su archivo de diseño
<com.abhinav.chouhan.loaderchip.LoaderChip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Aparecerá una línea de carga roja de forma predeterminada, que puede personalizar con los siguientes atributos
atributo | formato | Descripción |
---|---|---|
color del cargador | color | dar el color deseado a la linea del cargador |
ancho del cargador | dimensión | dar deseado con a la línea de carga |
Duración de la vuelta | número entero | proporcione la duración deseada en milisegundos para una rotación completa de la línea del cargador alrededor del chip |
cargar al hacer clic | booleano | indica si desea o no comenzar a cargar al hacer clic en el chip, el valor predeterminado es verdadero |
loaderColorStart / loaderColorEnd | color | estos atributos caben en una columna porque el efecto es visible solo si ambos están presentes se usan para dibujar la línea de carga en un color degradado, donde loaderColorStart proporciona el color inicial y loaderColorEnd proporciona el color final del degradado, cuando estos atributos están presentes Los atributos loaderColor se ignoran si están presentes, si solo uno de ellos está presente, se utiliza loaderColor. |
efecto inverso | booleano | indica si el cargador debe ir y venir |
cargando texto | Cuerda | texto opcional para mostrar al cargar |
cargandoTextColor | color | color de texto para mostrar al cargar |
Estilo del cargador | enumeración | utilizar para proporcionar un estilo de carga de valores posibles bounce , accelerate , decelerate , accelerateThenDecelerate (por defecto), linear , overshoot , fastOutSlowIn |
Cargador predeterminado
Cargador de degradado (utiliza los atributos loaderColorStart y loaderColorEnd para el cargador de degradado de estos dos colores)
Cargador con ancho = 4dp y lapduración = 4000 milisegundos
Cargador con overshoot
loaderStyle
Cargador con bounce
loaderStyle
revistas con reverseEffect
habilitado y con varios radios de esquina
xml de la pantalla de arriba
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.abhinav.chouhan.loaderchip.LoaderChip
android:id="@+id/loaderChip3"
android:layout_width="200dp"
android:layout_height="60dp"
android:text="Clicked Me !"
app:lapDuration="2000"
app:loaderWidth="5dp"
app:loaderStyle="bounce"
app:chipCornerRadius="5dp"
app:reverseEffect="true"
app:layout_constraintVertical_bias="0.7"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.abhinav.chouhan.loaderchip.LoaderChip
android:id="@+id/loaderChip2"
android:layout_width="200dp"
android:layout_height="60dp"
android:text="Clicked Me !"
app:lapDuration="3000"
app:loaderWidth="8dp"
app:loaderStyle="overshoot"
app:reverseEffect="true"
app:loaderColor="@android:color/holo_blue_bright"
app:loaderColorStart="@android:color/holo_blue_bright"
app:loaderColorEnd="@android:color/holo_red_light"
app:layout_constraintVertical_bias="0.1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.abhinav.chouhan.loaderchip.LoaderChip
android:id="@+id/loaderChip"
android:layout_width="200dp"
android:layout_height="60dp"
android:text="Clicked Me !"
app:lapDuration="2000"
app:loaderWidth="3dp"
app:reverseEffect="true"
app:chipCornerRadius="15dp"
app:layout_constraintVertical_bias="0.4"
app:loaderColor="@android:color/holo_blue_bright"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Versión 1.0.5 (10-julio-2021)
proporcionar texto opcional al cargar, atributos loadingText
, loadingTextColor
se agregan
Contribuciones gracias a StackOverflow cheticamp por arreglar esta error principal