为什么ProgressDialog的背景没有设置为透明?

Mar*_*tin 24 android progressdialog android-styles

我想将背景设置为透明,所以我已经设置了以下代码

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> 
Run Code Online (Sandbox Code Playgroud)

我有使用Progressdialog类似下面的代码JAVA filefragment.

Activity activity = getActivity() ;
mProgressDialog = new ProgressDialog(activity,R.style.dialog) ;
mProgressDialog.setCancelable(false) ;
mProgressDialog.show() ;
Run Code Online (Sandbox Code Playgroud)

但是我得到了如下图所示的进展,并且它没有透明的背景.

在此输入图像描述

为什么背景不会变为透明?

M D*_*M D 67

创建自定义MyThemevalues\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>
Run Code Online (Sandbox Code Playgroud)

还可以添加这个CustomAlertDialogStylevalues\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>
Run Code Online (Sandbox Code Playgroud)

并设置ProgressDialog如下:

 pd = new ProgressDialog(getActivity(),R.style.MyTheme);
 pd.setCancelable(false);
 pd.setProgressStyle(android.R.style.Widget_ProgressBar_Small);
 pd.show();
Run Code Online (Sandbox Code Playgroud)

  • 试过但没有成功!除此之外,很好的解决方案. (2认同)

Dav*_*kro 12

您可以使用此代码,在设备中工作正常> = 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();
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


And*_*zan 5

试试这个

mProgressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
Run Code Online (Sandbox Code Playgroud)

编辑:

尝试将其添加到布局xml中

        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:background">@android:color/transparent</item>
Run Code Online (Sandbox Code Playgroud)