Cómo personalizar la barra de progreso que se muestra en la imagen siguiente en Android
Las siguientes son capturas de pantalla de la implementación de varias barras de progreso en el "Manual de aprendizaje de Android":
Si desea ver los códigos y documentos de implementación de varias barras de progreso, vaya directamente a 360 Mobile Assistant para descargar el "Manual de estudio de Android", solo mire los ejemplos en el documento.
1. Descripción
En el progreso de ciertas operaciones, hay un indicador visual para presentar el progreso de la operación al usuario, y también cuenta con una barra de progreso auxiliar para Usados. para mostrar el progreso intermedio, como el progreso del búfer durante la reproducción de medios de transmisión. El progreso de la barra de progreso también puede no estar definido. En modo indeterminado, la barra de progreso muestra una animación en bucle. Las aplicaciones que utilizan tareas de duración desconocida suelen utilizar este patrón.
2. Atributos XML importantes
android:progressBarStyle: estilo de barra de progreso predeterminado
android:progressBarStyleHorizontal: estilo horizontal
3. métodos
getMax(): Devuelve el límite superior del rango de la barra de progreso
getProgress(): Devuelve el progreso
getSecondaryProgress(): Devuelve el progreso secundario
p>
incrementProgressBy(int diff): Especifica el incremento de progreso
isIndeterminate(): Indica si la barra de progreso está en modo indeterminado
setIndeterminate (booleano indeterminado): establece la barra de progreso en modo incierto
setVisibility(int v): establece si esta barra de progreso es visible
4 eventos importantes
onSizeChanged (int w, int h, int oldw, int oldh): este evento se genera cuando cambia el valor de progreso
5 Estilo de barra de progreso
Widget.ProgressBar.Horizontal?Progreso largo
Androidxml ?Diseño :
android:id="@+id/progress_bar" android:layout_width="fill_parent " android :layout_ height="wrap_content" style="@android:style/Widget.ProgressBar.Horizontal" />? Fuente: ProgressBar privado mProgress; privado int mProgressStatus=0; Manejador privado mHandler=newHandler(); @Override void protegido onCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); p> mProgress=(ProgressBar )findViewById(R.id.progress_bar); nuevo hilo (nuevo Runnable(){ @ Anulación public void run(){ while(mProgressStatus<100){ mProgressStatus=doWork(); mHandler.post(new Runnable(){ @Override public void run(){ mProgress.setProgress(mProgressStatus); } }); } } }) .start (); }? Imágenes válidas: Barra de progreso con segundo progreso
p>La configuración xml es la siguiente:
android:id="@+id/progress_bar_with_segundo" style="@android:style /Widget. paddingBottom="20dp"/> Aquí, configuramos el progreso inicial en 40, y el valor de android:progress está entre mini y max, es decir, mini<=progressvalue<=max. Establezca el valor de progreso de la segunda barra de progreso en 70, que también está entre mini y máximo. El efecto es el siguiente: Progreso en modo incierto. bar archivo de configuración xml: android:id="@+id/progress_bar_indeterminate" style= "@android:style /Widget.ProgressBar. android:layout_width="fill_parent" android:layout_height="wrap_ content" android:indeterminate= "true" android: indeterminateBehavior="cycle" android:paddingBottom="20dp" android:paddingTop="20dp" android:progress ="40" />? Aquí, se establece en una barra de progreso no modelo a través de android:indeterminate="true" , y el efecto es como se muestra en la figura: Barra de progreso circular normal: Widget.ProgressBar.Inverse <.ProgressBar android:id="@+id/ Progress_bar1" style ="@android:style/Widget.ProgressBar. android:layout_ width="fill_parent" android:layout_height="wrap_content" android:progress ="50" android:background="#ff00ff" android:paddingTop="4dp" />? Establecer el color de fondo a través de android:backgroup