代码复用很重要!对话框除了内容不同外,显示样式相同,我们就要建立一个工厂类。

publicclassDialogFactory{publicstaticDialogcreatRequestDialog(finalContextcontext,Stringtip){finalDialogdialog=newDialog(context,R.style.dialog);dialog.setContentView(R.layout.dialog_layout);Windowwindow=dialog.getWindow();WindowManager.LayoutParamslp=window.getAttributes();intwidth=Utils.getScreenWidth(context);lp.width=(int)(0.6*width);TextViewtitleTxtv=(TextView)dialog.findViewById(R.id.tvLoad);if(tip==null||tip.length()==0){titleTxtv.setText("正在发送请求");}else{titleTxtv.setText(tip);}returndialog;}}


调用方法:

privateDialogmDialog=null;privatevoidshowRequestDialog(){if(mDialog!=null){mDialog.dismiss();mDialog=null;}mDialog=DialogFactory.creatRequestDialog(this,"正在验证账号...");mDialog.show();}


values文件夹中style.xml

<stylename="dialog"parent="@android:style/Theme.Dialog"><itemname="android:windowIsFloating">true</item><!--设置未浮动窗口--><itemname="android:windowFrame">@null</item><!--设置无边框--><itemname="android:windowNoTitle">true</item><!--设置无标题--><itemname="android:windowBackground">@color/sc_transparent_background</item><!--设置完全透明--><itemname="android:backgroundDimEnabled">true</item><!--设置屏幕变暗--></style>