Red de conocimiento informático - Computadora portátil - Cómo personalizar la barra de progreso que se muestra en la imagen siguiente en Android

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

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

p>

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"

p>

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