progreso - programar un progressbar en android studio
Cómo implementar una barra de progreso circular de diseño de material en Android (7)
Además de la respuesta de cozeJ4 , aquí está la versión actualizada de esa esencia
El original carecía de importaciones y contenía algunos errores. Este está listo para usar.
Quiero hacer una barra de progreso circular de diseño de material como la de la aplicación de Android Inbox by Gmail. ¿Cómo logro esto (en dispositivos pre-piruletas)?
Estoy tratando de lograr un efecto similar como este. Bandeja de progreso circular del diseño de materiales de Inbox by Gmail
Aquí hay una impresionante implementación de la barra de progreso intermedia circular del diseño del material https://gist.github.com/castorflex/4e46a9dc2c3a4245a28e . La implementación solo carece de la capacidad de agregar varios colores como en la bandeja de entrada de la aplicación de Android, pero esto hace un gran trabajo.
Buena implementación para la barra de progreso circular de diseño de materiales (de rahatarmanahmed/CircularProgressView ),
<com.github.rahatarmanahmed.cpv.CircularProgressView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/progress_view"
android:layout_width="40dp"
android:layout_height="40dp"
app:cpv_indeterminate="true"/>
Estaba buscando una forma de hacer esto usando un xml
simple, pero no pude encontrar ninguna respuesta útil, así que se me ocurrió esto.
Esto también funciona en versiones previas a la piruleta, y está muy cerca de la barra de progreso del diseño del material. Solo necesita utilizar este drawable
como el indeterminate drawable
en el diseño de ProgressBar
.
<?xml version="1.0" encoding="utf-8"?><!--<layer-list>-->
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360">
<layer-list>
<item>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="-90"
android:toDegrees="-90">
<shape
android:innerRadiusRatio="2.5"
android:shape="ring"
android:thickness="2dp"
android:useLevel="true"><!-- this line fixes the issue for lollipop api 21 -->
<gradient
android:angle="0"
android:endColor="#007DD6"
android:startColor="#007DD6"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>
</item>
<item>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="270">
<shape
android:innerRadiusRatio="2.6"
android:shape="ring"
android:thickness="4dp"
android:useLevel="true"><!-- this line fixes the issue for lollipop api 21 -->
<gradient
android:angle="0"
android:centerColor="#FFF"
android:endColor="#FFF"
android:startColor="#FFF"
android:useLevel="false" />
</shape>
</rotate>
</item>
</layer-list>
</rotate>
establece el dibujable anterior en ProgressBar de la siguiente manera:
android:indeterminatedrawable="@drawable/above_drawable"
He exportado los tres diseños de material Design Drawables a Android 4.0, que se pueden utilizar como reemplazo directo para ProgressBar
regular, con exactamente la misma apariencia.
Estos drawables también backported las API de tintado (y soporte RTL), y utiliza ?colorControlActivated
como el tinte predeterminado. También se ha presentado un widget de MaterialProgressBar
que amplía ProgressBar
para mayor comodidad.
DreaminginCodeZH/MaterialProgressBar
Este proyecto también ha sido adoptado por afollestad/material-dialogs para el diálogo de progreso.
En Android 4.4.4:
En Android 5.1.1:
La plataforma usa un vector dibujable, por lo que no puede reutilizarlo como en versiones anteriores.
Sin embargo, el soporte lib v4 contiene un respaldo de este dibujante: http://androidxref.com/5.1.0_r1/xref/frameworks/support/v4/java/android/support/v4/widget/MaterialProgressDrawable.java Tiene un @hide
anotación (está aquí para SwipeRefreshLayout), pero nada le impide copiar esta clase en su base de código.
<ProgressBar
android:id="@+id/loading_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateTintMode="src_atop"
android:indeterminateTint="@color/your_customized_color"
android:layout_gravity="center" />
El efecto se ve así: