8

ビューにモーダルプログレス「ホイール」オーバーレイを表示したいと思います。

ProgressDialog は近づいていますが、ダイアログの背景や境界線は必要ありません。

ダイアログウィンドウの背景ドローアブルを設定してみました:

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

しかし、役に立ちません (つまり、...setBackgroundDrawable コードがない場合と同じように見えます)。

4

5 に答える 5

13

より良い方法があるかどうかはわかりませんが、 ProgressBarを使用してそれを不確定に設定することで、スピナー ホイールを独自に取得できます。AbsoluteLayoutを使用している場合は、他のビューの上に配置できます。このレイアウトは、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>
于 2010-03-09T14:48:15.647 に答える
11

暗い背景でフルスクリーンの進行状況を作成するために、FrameLayout を使用し、必要な場合は RelativeLayout の可視性を VISIBLE に設定し、長い操作が完了した場合は GONE に設定します。

<?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>
于 2013-06-23T20:47:01.010 に答える
3

Klarthのソリューションは私にとってはうまくいきました、ありがとう!

私の場合、明示的な座標を使用するのではなく、progress_indicator の中心配置に layout_gravity を使用しました。

    <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"
        />
于 2011-03-24T23:49:19.957 に答える
1

このチュートリアルをチェックしましたか?ページの最後に、カスタムダイアログを作成する方法について説明します。これは、独自の背景を持つスピナー進行状況ダイアログボックスを配置するのに役立つ場合があります。

于 2010-03-09T13:55:39.713 に答える