Pregunta

Me gustaría mostrar una superposición modal progreso "rueda" en mi opinión.

El ProgressDialog se acerca, pero no quiero que el fondo de diálogo o de la frontera.

He intentado establecer el dibujable fondo de la ventana de diálogo:

this.progressDialog = new ProgressDialog(Main.this);

this.progressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
this.progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
this.progressDialog.setCancelable(false);
this.progressDialog.setIndeterminate(true);

this.progressDialog.show();

pero sin éxito (es decir, todavía se ve lo mismo que sin el código ... setBackgroundDrawable).

¿Fue útil?

Solución

¿Ha revisado este tutorial ? Al final de la página que habla de cómo crear un diálogo personalizado, y que podría ayudarle a poner una caja de diálogo de progreso spinner con sus propios fondos.

Otros consejos

No estoy seguro si hay una manera mejor, pero se podía conseguir la rueda de ruleta en su propia mediante el uso de un ProgressBar y establecer que sea interdeterminate. Si está utilizando un AbsoluteLayout se puede poner sobre otros puntos de vista. Esta disposición debe demostrar este método con XML:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout android:id="@+id/AbsoluteLayout"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <ProgressBar android:id="@+id/ProgressBar"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:indeterminate="true" android:indeterminateOnly="true"
        android:isScrollContainer="true" android:layout_x="100dip"
        android:layout_y="10dip" android:soundEffectsEnabled="true"></ProgressBar>
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="@string/hello"
        android:layout_gravity="center_horizontal" android:gravity="center_horizontal"
        android:layout_y="25dip" />
</AbsoluteLayout>

Con el fin de crear un progreso pantalla completa en un fondo oscuro utilizo un FrameLayout y establecer la visibilidad de la RelativeLayout a visible cuando sea requerido o desaparecido cuando se realiza la operación de largo:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ScrollView 
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

        <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:orientation="vertical"
        android:padding="3dip" >

            <!-- Your regular UI here -->

    </LinearLayout>
   </ScrollView>

   <RelativeLayout
       android:id="@+id/relativelayout_progress"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:visibility="gone"
       android:background="#aa000022" >

       <ProgressBar 
           android:layout_centerInParent="true"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:indeterminateOnly="true" />

    </RelativeLayout>
</FrameLayout>

La solución de Klarth trabajó para mí, gracias!

En mi caso he usado el layout_gravity para la colocación del centro de la progress_indicator, en lugar de utilizar las coordenadas explícitas.

    <ProgressBar android:id="@+id/pb"
        android:layout_width="40dp" 
        android:layout_height="40dp"
        android:indeterminate="true" 
        android:indeterminateOnly="true"
        android:isScrollContainer="true" 
        android:layout_gravity="center_vertical|center_horizontal"
        android:soundEffectsEnabled="false"
        />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top