Cómo cambiar el color de un ProgressBar indefinido?
Tengo una barra de progresión con el siguiente estilo: style="?android:attr/android:progressBarStyleSmall"
Tristemente la barra es casi blanca y en mi caso exhibido en un fondo blanco. La barra de progreso es casi invisible debido a eso.
- Colores de botones personalizados para discapacitados y habilitados
- ¿Cómo puedo configurar Orientación fija para todas las actividades
- Problemas con el posicionamiento de textView bajo otro textView en el diseño relativo
- Crear vista dinámica, múltiples vistas X veces, obtener / establecer valor para cada grupo
- Relaciones entre dip, px y dpi
¿Cómo puedo cambiar el color de la barra de progreso? Un gris más oscuro sería genial.
- cómo configurar el ancho de los botones en android para cubrir el ancho de la pantalla?
- Android cómo obtener altura y ancho en onCreateView
- ¿Cómo configurar el android para mostrar la orientación vertical?
- Vista personalizada con diseño
- Android: Layout.addView () no funciona
- ¿Cuáles son los tamaños de los iconos en los botones de acción de notificaciones de Android?
- Cómo estructurar correctamente mi aplicación de Android, clases, vistas, bases de datos, Made Simple?
- Cómo agregar un control de botón a una vista xml de Android en tiempo de ejecución?
La razón por la que el bar es de ese color es debido al estilo que ha seleccionado. Es un estilo fijo y utiliza los temas del sistema para la generación de elementos de la interfaz de usuario.
Mira el código fuente desde aquí . Este atributo progressBarStyleSmall utiliza los estilos definidos aquí .
<style name="Widget.ProgressBar.Small"> <item name="android:indeterminateDrawable">@android:drawable/progress_small_white</item> <item name="android:minWidth">16dip</item> <item name="android:maxWidth">16dip</item> <item name="android:minHeight">16dip</item> <item name="android:maxHeight">16dip</item> </style>
Simplemente cree un estilo personalizado siguiendo el ejemplo del código fuente android. Usted necesitaría substituir el androide: indeterminateDrawable a lo que usted quiere.
progressBar.getIndeterminateDrawable().setColorFilter( getResources().getColor(R.color.light_light_purple), android.graphics.PorterDuff.Mode.SRC_IN);
Este código cambia el color predeterminado holo inderminate drawable a su propio color. Defina su código de color y reemplace R.color.light_light_purple
por R.color.your_color_code
.
Para obtener un ProgressBar negro, utilice uno de los estilos inversos:
<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/> <ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/> <ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/>
public static void setColorOfProgressBar(ProgressBar mProgressBar, int mColor){ mProgressBar.getIndeterminateDrawable().setColorFilter(mColor, android.graphics.PorterDuff.Mode.MULTIPLY); }
Tuve un tiempo muy difícil tratando de cambiar su color. Para solucionarlo, conseguí el código src de android y hice mi propia clase ProgressBar.
No es la mejor respuesta, pero funcionó para mí.
Y la respuesta ya estaba en SO:
Stackoverflow.com/questions/2020882/how-to-change-progress-bars-progress-color-in-android
Simplemente puede cambiar todo el dibujable que se muestra en la barra de progreso a través del atributo android:indeterminateDrawable
.
Sólo una nota, para usar
<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/>
O cualquiera de las barras de progreso inverso, usted tiene que establecer su requerimiento mínimo de Android sdk a nivel 4 (Android 1.6).
- Android: clase no encontrada excepción: android.support.v4.app.FragmentPager
- (Diseño de la Biblioteca de Soporte) CollapsingToolbarLayout – Barra de herramientas no se queda en el colapso