19

アプリケーションでカスタムを使用ProgressDialogしています。カスタムにすることはできますが、の上部の境界線またはウィンドウも削除したいと思いますprogressDialog。私は次のstyles.xmlように定義customDialogし ます

<style name="AppTheme" parent="android:Theme.Light" />

<style name="CustomDialog" parent="@android:style/Theme.Dialog">
    <item name="android:background">#7BC047</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:windowBackground">@null</item>
     <item name="android:windowFrame">@null</item>
</style>

親ウィンドウを削除するためwindowBackgroundに、nullとnullに設定しwindowFrameていますが、機能しませんでした。現在、私のカスタム進行状況ダイアログは、以下の画像のようになっています。ここに画像の説明を入力してください

このコードを使用して、のスタイルを設定していますprogressDialog

 private void showProgressDialog() {
    progressDialog = new ProgressDialog(this,R.style.CustomDialog);
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    progressDialog.setMessage("Logging in. Please wait.");
    progressDialog.show();
}

だから、この問題に関して私を助けてください。どんな助けでも本当に感謝されるべきです。

4

8 に答える 8

28

この回答は、質問に記載されている問題には対処していませんが、カスタム進行状況ダイアログを実装する方法を検索する場合、これが SO を指す唯一のリンクです。Maksym Dybarskyiそうは言っても、このリンクで特定の人がクールで使いやすいカスタム進行状況ダイアログを見つけました。

すべてのクレジットは私ではなく作成者にあります。共有しているだけです

これを依存関係に追加するだけです。

dependencies {
...
   compile 'com.github.d-max:spots-dialog:0.4@aar'
}

そして、カスタム スタイル:

<style name="Custom" parent="android:Theme.DeviceDefault.Dialog">
    <item name="DialogTitleAppearance">@android:style/TextAppearance.Medium</item>
    <item name="DialogTitleText">Please Wait</item>
    <item name="DialogSpotColor">@android:color/holo_orange_dark</item>
    <item name="DialogSpotCount">8</item>
</style>

最後に、コードで次のようにします。

private AlertDialog progressDialog;
progressDialog = new SpotsDialog(mContext, R.style.Custom);

//Am using it in an AsyncTask. So in  my onPreExecute, I do this:
public void onPreExecute() {
  super.onPreExecute();
  progressDialog.show();
  ...
 }

//dismiss in onPostExecute
public void onPostExecute(){
   progressDialog.dismiss();
 } 

結果:

ここに画像の説明を入力

黄色のドットは左から右に移動し、スタイルでドットの数を変更できます

于 2015-09-08T07:06:16.417 に答える
17

私は答えるのがかなり遅いことを知っていますが、とにかく答えます、

Dialog dialog = new  Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_login);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
于 2013-04-28T10:35:12.810 に答える
2

進行状況ダイアログのコンストラクターでアクティビティ名を使用しているかどうかを確認するだけです。

 progressDialog = new ProgressDialog(Activity.this,R.style.CustomDialog);
于 2012-12-17T10:13:59.527 に答える
1

これをスタイルに追加

<item name="android:background">@android:color/transparent</item>

<item name="android:windowBackground">@android:color/transparent</item>
于 2014-08-20T06:26:02.987 に答える
1

CustomDialogこれをin に追加しますstyles.xml:

<item name="android:alertDialogStyle">@style/CustomAlertDialogStyle</item>

そしてこれstyle

 <style name="CustomAlertDialogStyle" >
    <item name="android:bottomBright">@android:color/transparent</item>
    <item name="android:bottomDark">@android:color/transparent</item>
    <item name="android:bottomMedium">@android:color/transparent</item>
    <item name="android:centerBright">@android:color/transparent</item>
    <item name="android:centerDark">@android:color/transparent</item>
    <item name="android:centerMedium">@android:color/transparent</item>
    <item name="android:fullBright">@android:color/transparent</item>
    <item name="android:fullDark">@android:color/transparent</item>
    <item name="android:topBright">@android:color/transparent</item>
    <item name="android:topDark">@android:color/transparent</item>
</style>
于 2015-08-01T16:04:08.590 に答える