バックグラウンドを透明に設定したいので、次のコードを設定しました
styles.xml
<style name="dialog" parent="@Android:style/Theme.Dialog">
<item name="Android:windowFrame">@null</item>
<item name="Android:windowIsFloating">true</item>
<item name="Android:windowContentOverlay">@null</item>
<item name="Android:windowAnimationStyle">@Android:style/Animation.Dialog</item>
<item name="Android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="Android:windowBackground">@Android:color/transparent</item>
<item name="Android:windowNoTitle">true</item>
</style>
そして、Java file
とProgressdialog
で次のコードのようにfragment
を使用しました。
Activity activity = getActivity() ;
mProgressDialog = new ProgressDialog(activity,R.style.dialog) ;
mProgressDialog.setCancelable(false) ;
mProgressDialog.show() ;
しかし、次の図のような進行状況が得られ、背景が透明ではありません。
背景が透明に変わらないのはなぜですか?
values\styles.xml
にカスタムMyTheme
を作成します
<style name="MyTheme" parent="Android:Theme.Holo.Dialog">
<item name="Android:alertDialogStyle">@style/CustomAlertDialogStyle</item>
<item name="Android:windowBackground">@Android:color/transparent</item>
<item name="Android:textColorPrimary">#FFFFFF</item>
<item name="Android:backgroundDimEnabled">false</item>
<item name="Android:textColor">#FFFFFF</item>
<item name="Android:textStyle">normal</item>
<item name="Android:textSize">12sp</item>
</style>
また、values\styles.xml
にこのCustomAlertDialogStyle
を追加します
<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>
ProgressDialog
を次のように設定します。
pd = new ProgressDialog(getActivity(),R.style.MyTheme);
pd.setCancelable(false);
pd.setProgressStyle(Android.R.style.Widget_ProgressBar_Small);
pd.show();
これを試して
mProgressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Android.graphics.Color.TRANSPARENT));
編集:
これをレイアウトxmlに追加してみてください
<item name="Android:backgroundDimEnabled">true</item>
<item name="Android:background">@Android:color/transparent</item>
私の場合、color.xml変数で定義するだけです
ライトスタイルの場合:<color name="accent_material_light">#000000</color>
暗いスタイルの場合:<color name="accent_material_dark">#000000</color>
これらの変更はシステム全体に影響します