Android: How to Create a Modal Progress “Wheel” Overlay?

后端 未结 5 880
甜味超标
甜味超标 2021-02-15 17:58

I would like to show a modal progress \"wheel\" overlay on my view.

The ProgressDialog comes close, but I do not want the dialog background or border.

I tried se

相关标签:
5条回答
  • 2021-02-15 18:32

    you just add .setCanceledOnTouchOutside(false); to your ProgressDialog.

     ProgressDialog dialog = new ProgressDialog(getApplicationContext());
     dialog.setMessage("your message...");
     dialog.setIndeterminate(true);
     dialog.setCanceledOnTouchOutside(false);
     dialog.show();
    
    0 讨论(0)
  • 2021-02-15 18:42

    Have you checked out this tutorial? At the end of the page it talks about how to create a custom dialog, and that might help you put a spinner progress dialog box with your own backgrounds.

    0 讨论(0)
  • 2021-02-15 18:43

    Klarth's solution worked for me, thanks!

    In my case I used the layout_gravity for center placement of the progress_indicator, rather than using explicit coordinates.

        <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"
            />
    
    0 讨论(0)
  • 2021-02-15 18:45

    Not sure if there is a better way, but you could get the spinner wheel on its own by using a ProgressBar and setting it to be interdeterminate. If you are using an AbsoluteLayout you can put it over other views. This layout should demonstrate this method with 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>
    
    0 讨论(0)
  • 2021-02-15 18:48

    In order to create a full screen progress on a darkened background I use a FrameLayout and set the visibility of the RelativeLayout to VISIBLE when required or GONE when the long operation is done:

    <?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>
    
    0 讨论(0)
提交回复
热议问题