Barra de progreso con 2 indicadores

Quiero tener barra de progreso con 2 indicadores.

Un indicador muestra el progreso de la tarea A en color verde, el segundo indicador muestra el progreso de la tarea B en rojo, todo en una barra de progreso. El resto demuestra el resto de las tareas A y B.

¿Hay una solución (simple) para lograr esto? Leí la documentación pero no encontré ayuda.

Esto puede hacerse codificando los dos indicadores como progreso primario y progreso secundario de la misma barra de progreso.

Cree una subclase para la barra de progreso.

public class TextProgressBar extends ProgressBar { private Paint textPaint; public TextProgressBar(Context context) { super(context); textPaint = new Paint(); textPaint.setColor(Color.BLACK); } public TextProgressBar(Context context, AttributeSet attrs) { super(context, attrs); textPaint = new Paint(); textPaint.setColor(Color.BLACK); setMax(30); setProgress(12); setSecondaryProgress(20); } } 

La entrada XML de la barra de progreso debe referirse a esta subclase.

 <com.darsh.doubleProgressBar.TextProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="15sp" android:layout_marginLeft="1sp" android:layout_marginRight="1sp" android:layout_marginTop="10sp" android:progressDrawable="@drawable/progress" /> 

Ahora crear el drawable en el directorio de recursos

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@android:id/background"> <shape> <corners android:radius="5dip" /> <gradient android:angle="270" android:centerColor="#ff5a5d5a" android:centerY="0.75" android:endColor="#ff747674" android:startColor="#ff5a5d5a" /> </shape> </item> <item android:id="@android:id/secondaryProgress"> <clip> <shape> <corners android:radius="5dip" /> <gradient android:angle="270" android:centerColor="#32cd32" android:centerY="0.75" android:endColor="#32cd32" android:startColor="#32cd32" /> </shape> </clip> </item> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="5dip" /> <gradient android:angle="270" android:endColor="#33B5E5" android:startColor="#33B5E5" /> </shape> </clip> </item> </layer-list> 

Los colores para los indicadores primarios y secundarios se pueden cambiar en este dibujable.

Hacer uso de ellos en su código como este:

 TextProgressBar textProgress; textProgress = (TextProgressBar)findViewById(R.id.progressBar1); textProgress.setMax(100); textProgress.setProgress(10); // textProgress.setSecondaryProgress(50); //green 

Hacer un layuout personalizado y poner las dos barras de progreso en el mismo. Entonces usted necesita para manipular las barras de progreso por obtener su mango. Si su para una notificación, usted tiene que fijarla como visión remota.

  • Estado de la barra de progreso android
  • ¿Cómo cambiar el color predeterminado de la barra de progreso?
  • Barra de progreso para la carga múltiple con varios archivos Android
  • Smooth Progress Bar Animación
  • Cambiar color de la barra de progreso a través de CÓDIGO SOLAMENTE en Android
  • Mostrar una barra de progreso en una ficha secundaria hasta que el WebView se cargue
  • ¿Cómo puedo mostrar un ProgressBar sólo después de un retardo mínimo?
  • Android ProgressBar personalizado no está girando
  • Subida de archivos ¿No obtiene respuesta de devolución de llamada regular?
  • ¿Cómo mostrar la animación de progreso de carga para alguna imagen?
  • Imagen de animación de fondo en ProgressBar en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.