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.

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

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).

  • Cómo poner 9 botones en 3 filas en el diseño de Android xml?
  • Diálogo de Android con diseño personalizado: devolver datos
  • ¿Cómo puedo convertir un diseño PSD a Android xml?
  • Cómo centrar un Imageview en la pantalla con un FrameLayout? (Con código java)
  • ¿Cómo puedo obtener un Android TableLayout para llenar la pantalla?
  • Android Establecer ImageButton como Toggle
  • View.onMeasure () no se llama
  • ¿Cuál es la diferencia entre android: layout_width y android: width
  • ¿Cuándo android primero hace la disposición?
  • Cómo cambiar la visibilidad del diseño programaticly
  • ¿Cómo puedo encontrar los parámetros de diseño del widget tostado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.