studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android layout progress-bar

para - manual de programacion android pdf



¿Cómo cambiar el color de una ProgressBar indefinida? (7)

Tengo una barra de progreso con el siguiente estilo: style="?android:attr/android:progressBarStyleSmall"

Tristemente, la barra es casi blanca y en mi caso se muestra sobre un fondo blanco. La barra de progreso es casi invisible por eso.

¿Cómo puedo cambiar el color de la barra de progreso? Un gris más oscuro sería genial.


La razón por la cual la barra es de ese color es por el estilo que ha seleccionado. Ese 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 here . Este atributo progressBarStyleSmall utiliza los estilos definidos here .

<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 de Android. Necesitarías reemplazar el android: indeterminadoDrawable a lo que quieras.


Me costó mucho intentar cambiar su color. Para resolverlo, obtuve el código src de Android e hice mi propia clase ProgressBar.

No es la mejor respuesta, pero funcionó para mí.


Para obtener una ProgressBar negra, use 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"/>


Solo una nota, para usar

<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/>

o cualquiera de las barras de progreso inversas, debe establecer el requisito mínimo de SDK de Android en el nivel 4 (Android 1.6).



progressBar.getIndeterminateDrawable().setColorFilter( getResources().getColor(R.color.light_light_purple), android.graphics.PorterDuff.Mode.SRC_IN);

Este código cambia el color drawable holo inderminate predeterminado a su propio color. Defina su código de color y reemplace R.color.light_light_purple por R.color.your_color_code .


public static void setColorOfProgressBar(ProgressBar mProgressBar, int mColor){ mProgressBar.getIndeterminateDrawable().setColorFilter(mColor, android.graphics.PorterDuff.Mode.MULTIPLY); }