2016-04-08 42 views
0

我要讓ProgressDialog透明透明,但我從來沒有成爲透明的它成爲ProgressDialog.How黑色背景可以我這樣做,請幫助如何使ProgressDialog在android系統

這裏是我的ProgressDialog代碼: -

private class LoginAttempt extends AsyncTask<String, Void, String> { 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(getActivity(), R.style.MyTheme); 
     pDialog.setCancelable(false); 
     pDialog.setProgressStyle(android.R.style.Widget_ProgressBar_Small); 
     pDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
     pDialog.show(); 

    } 

這裏是我的style.xml

<style name="MyTheme" parent="android:Theme.Holo.Dialog"> 
    <item name="android:alertDialogStyle">@style/CustomAlertDialogStyle</item> 
    <item name="android:windowBackground">@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> 

<style name="CustomAlertDialogStyle"> 
    <item name="android:bottomBright">@color/transparent</item> 
    <item name="android:bottomDark">@color/transparent</item> 
    <item name="android:bottomMedium">@color/transparent</item> 
    <item name="android:centerBright">@color/transparent</item> 
    <item name="android:centerDark">@color/transparent</item> 
    <item name="android:centerMedium">@color/transparent</item> 
    <item name="android:fullBright">@color/transparent</item> 
    <item name="android:fullDark">@color/transparent</item> 
    <item name="android:topBright">@color/transparent</item> 
    <item name="android:topDark">@color/transparent</item> 
</style> 

,這裏是我的結果: - enter image description here

+0

確保你給<顏色名稱= 「透明」>#00000000在colors.xml – Rooban

+0

@Rooban:不需要這一點。 Color.Transparent提供所需值 – Yashasvi

回答

0

這對我的作品(假設我在MainActivity):

ProgressDialog pDialog = new ProgressDialog(MainActivity.this, R.style.AppTheme); 
    pDialog.setCancelable(false); 
    pDialog.setProgressStyle(android.R.style.Widget_ProgressBar_Small); 
    pDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
    pDialog.show(); 

,或者,如果我只是做

ProgressDialog pDialog = new ProgressDialog(MainActivity.this); 

即沒有提供任何主題,它的工作原理。

原來你提供的主題有問題。嘗試一次而不提供主題。

+0

這對我不起作用。它仍然顯示白色對話框,左邊是指示器。 – TruongHieu

0

如果您正在服用<item name="android:windowBackground">@color/transparent</item>您必須在您的color.xml中定義color以獲得完全透明度。像這樣:

<color name="transparent">#00FFFFFF</color> 

看看這裏的參考:Transparent ARGB hex value

+0

但我不想黑色 – Raj

+0

我不想在背景任何顏色我只想透明而不是黑色 – Raj

+0

@Raj這就是爲什麼我說你改變透明色的十六進制值。你可以檢查鏈接,爲什麼你會得到一點黑色透明的顏色。通過改變顏色 –