android系统的默认对话框是黑色背景,白色边框的样式,对于android系统来说是相当漂亮的,可是与自己的项目风格不搭,所以只好想办法重写他的样式了,当然dialog是支持样式重写的
使用new Dialog(context, style).setContentView(layout);
即可定制属于自己项目的dialog
当然,这儿的style起到了至关重要的作用,要知道那个与项目不搭的白边得全靠它了
在value下新建style.xml
<style name="AsyncTaskDialog" parent="@android:Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:background">@android:color/transparent</item>
</style>
dialog的代码:
public static Dialog showMyDialog(Context context, String message,
android.view.View.OnClickListener sureListener,
android.view.View.OnClickListener cancleListener) {
LinearLayout layout = (LinearLayout) LayoutInflater.from(context)
.inflate(R.layout.nt_view_dialog, null);
TextView messageView = (TextView) layout
.findViewById(R.id.message_view);
messageView.setText(message);
Button sureButton = (Button) layout.findViewById(R.id.sure_button);
Button cancleButton = (Button) layout.findViewById(R.id.cancle_button);
sureButton.setOnClickListener(sureListener);//按钮监听
cancleButton.setOnClickListener(cancleListener);
Dialog dialog = new Dialog(context, R.style.AsyncTaskDialog);
dialog.addContentView(layout, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.setCanceledOnTouchOutside(false);
dialog.show();
return dialog;
}