通过扩展Dialog或AlertDialog来定制对话框

我想制作一个自定义的Dialog 。 因为我不喜欢它的风格,我想要有圆angular矩形而不是尖angular。 我知道如何在AndroidManifest.xml通过主题来实现它,例如,我使用:

 android:theme="@style/Theme.CustomDialog" 

Theme.CustomDialog.xml

 <style name="Theme.CustomDialog" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@drawable/filled_box</item> <item name="android:windowNoTitle">true</item> filled_box.xml <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffffffff"/> <stroke android:width="3dp" color="#ffff8080"/> <corners android:radius="30dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> 

如何通过扩展DialogAlertDialog来实现类似的结果?

Solutions Collecting From Web of "通过扩展Dialog或AlertDialog来定制对话框"

在你的类的构造函数中,扩展Dialog调用super(context, R.style.CustomDialog); 我已经做了很多次,创build具有特定主题的自定义对话框。

但是,如果主题是关于要更改的对话框的唯一内容,则可以尝试实例化Dialog类的实例,并将其传递给主题ID,如Dialog dialog = new Dialog(context, R.style.CustomDialog);

扩展Dialog的一个例子:

 public class MyDialog extends Dialog { public MyDialog(final Context context) { // Set your theme here super(context, R.style.MyDialogTheme); // This is the layout XML file that describes your Dialog layout this.setContentView(R.layout.myDialogLayout); } } 

您将添加到此类的其余代码将与您在Activity类中编写的内容几乎完全相同。