我想将背景设置为透明,所以我在
中设置了以下代码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>
我在[{1}}和Progressdialog
中使用了JAVA file
,例如以下代码。
fragment
但是我得到了如下图所示的进展,并且它没有透明的背景。
为什么背景不会变为透明?
答案 0 :(得分:66)
在MyTheme
values\styles.xml
<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>
并在CustomAlertDialogStyle
values\styles.xml
<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();
答案 1 :(得分:12)
您可以使用此代码,在设备&gt; = 19(Kitkat)中正常工作
progress = ProgressDialog.show(Splash.this, null, null, true);
progress.setContentView(R.layout.elemento_progress_splash);
progress.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
//progress.show();
答案 2 :(得分:5)
试试这个
mProgressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
编辑:
尝试将其添加到布局xml
<item name="android:backgroundDimEnabled">true</item>
<item name="android:background">@android:color/transparent</item>
答案 3 :(得分:0)
就我而言,我只是在 color.xml 中定义变量
对于灯光风格:
<color name="accent_material_light">#000000</color>
对于黑暗风格:
<color name="accent_material_dark">#000000</color>
这些变化会影响整个系统
答案 4 :(得分:0)
只需尝试一下。它对我有用。
在styles.xml
<style name="TransparentProgressDialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTitleStyle">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:background">@android:color/transparent</item>
</style>
在Activity/Fragment
中:
ProgressDialog pDialog = new ProgressDialog(this, R.style.TransparentProgressDialog);