アプリケーションでカスタム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に、windowFrame
をnullに設定していますが、うまくいきませんでした。現在、私のカスタムの進行状況ダイアログは、下の画像のように見えます
このコードを使用して、progressDialog
のスタイルを設定しています。
private void showProgressDialog() {
progressDialog = new ProgressDialog(this,R.style.CustomDialog);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage("Logging in. Please wait.");
progressDialog.show();
}
それで、この問題に関して私を助けてください、どんな助けも本当に感謝されるべきです。
この回答は、質問に記載されている問題を解決するものではありませんが、カスタムの進行状況ダイアログを実装する方法を検索する場合、これは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();
}
結果:
黄色のドットは左から右に移動し、スタイルのドット数を変更できます
私は答えるのがかなり遅れていることを知っていますが、どんな方法でも答えます。
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));
進捗ダイアログのコンストラクタでアクティビティ名を使用しているかどうかを確認するだけで、
progressDialog = new ProgressDialog(Activity.this,R.style.CustomDialog);
これをスタイルに追加
<item name="Android:background">@Android:color/transparent</item>
<item name="Android:windowBackground">@Android:color/transparent</item>
これをstyles.xml
のCustomDialog
に追加します:
<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>
これは上記の質問に対する適切な答えではないかもしれません。しかし、これは興味深いので、ここに追加することを考えました。
(現在の評判についてコメントできません)
これを確認してください link
元の作者はデフォルトの読み込みダイアログの代わりにgifを追加しており、改善があればニースの代替品になると思います。
アプリケーションでカスタムProgressDialog
を使用しています。そのためには、次の手順を実行する必要があります。
step-1xmlレイアウトを作成する_custom_progress.xml
_
_<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:padding="@dimen/dp_size_10"
Android:layout_height="match_parent">
<ProgressBar
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerHorizontal="true"
Android:indeterminateTint="@color/colorPrimary"
Android:layout_centerInParent="true"/>
</RelativeLayout>
_
step-2Javaファイルを作成します。
_package com.example.customeprogress;
import Android.app.Dialog;
import Android.content.Context;
import Android.view.Gravity;
import Android.view.LayoutInflater;
import Android.view.View;
import Android.view.WindowManager;
public class CustomProgressDialogue extends Dialog {
public CustomProgressDialogue(Context context) {
super(context);
WindowManager.LayoutParams wlmp = getWindow().getAttributes();
wlmp.gravity = Gravity.CENTER_HORIZONTAL;
getWindow().setAttributes(wlmp);
setTitle(null);
setCancelable(false);
setOnCancelListener(null);
View view = LayoutInflater.from(context).inflate(
R.layout.custom_progress, null);
setContentView(view);
}
}
_
step-3アクティビティでこのカスタムクラスのオブジェクトを作成しますJavaクラスで、次のように初期化してオブジェクトを使用しますshow()
またはdismiss()
の場合
CustomProgressDialogue object = new CustomProgressDialogue(this);
を使用してこのダイアログを表示します。
object.show();そして、object.dismiss();を使用してそれを却下しました。
出力の結果。 こちらをご覧ください
<style name="CustomDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="Android:background">#7BC047</item>
<item name="Android:textColor">#FFFFFF</item>
<item name="Android:windowBackground">@color/colorTransparent</item>
</style>
これは私のために仕事をしました。