2012-12-17 67 views
12

我在我的应用程序中使用自定义ProgressDialog,我可以使它自定义,但我也想要删除progressDialog的上边框或窗口。 在styles.xml我定义为customDialog 使用自定义ProgressDialog android

<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父窗口,但我以前不为我工作。 目前我的自定义进度对话框如下图所示enter image description here

我使用此代码来设置样式progressDialog

private void showProgressDialog() { 
    progressDialog = new ProgressDialog(this,R.style.CustomDialog); 
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
    progressDialog.setMessage("Logging in. Please wait."); 
    progressDialog.show(); 
} 

所以,帮助我关于这个问题,任何帮助,应该非常感激。

+0

看看[这个答案](http://stackoverflow.com/a/3948347/1102014 )。 – Stan

回答

17

这个答案没有解决的问题陈述的问题,但对于如何实现自定义进度对话框搜索时,这是指向SO的唯一纽带。也就是说,我发现这个link上的某个Maksym Dybarskyi是一个很酷且易于使用的自定义进度对话框。

All Credit归创造者而不是我。我只是分享

所有你需要做的就是添加到您的依赖关系:

dependencies { 
... 
    compile 'com.github.d-max:spots-dialog:[email protected]' 
} 

然后自定义样式:

<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(); 
} 

结果:

enter image description here

黄点由左向右移动,你可以改变点的款式数量

+1

有什么方法可以通过使用此库来更改警报对话框的背景吗? –

+1

是的。 @GuruprasadRao检查Khawar的答案低于 – Bawa

+1

' @ color/transparent'add this is style – Bawa

2

只是检查你的进度对话框的构造函数中使用活动名称,

progressDialog = new ProgressDialog(Activity.this,R.style.CustomDialog); 
+1

感谢najib的回复,但是这对我没有用...... –

12

我知道我很晚回答,但我会回答任何方式,

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)); 
1

添加此款式

<item name="android:background">@android:color/transparent</item> 

<item name="android:windowBackground">@android:color/transparent</item> 
+2

你的回答似乎微不足道。请对你提出的建议做更多描述。 – Athafoud

1

添加到您的CustomDialogstyles.xml

<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> 
相关问题