Dialog代码,使用Builder模式构建

public class XxDialog extends Dialog {
    private Context mContext;
    private String mTitle;
    private String mContent;

    protected XxDialog(Context context) {
        super(context, R.style.marketdialog);
        this.mContext = context;
    }

    public void setmTitle(String mTitle) {
        this.mTitle = mTitle;
    }


    public void setmContent(String mContent) {
        this.mContent = mContent;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_layout);
        getWindow().setGravity(Gravity.CENTER);   //设置dialog位置
        WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
        layoutParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
        layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
        getWindow().setAttributes(layoutParams);
        setupView();
    }
    public static class Build {
            private Context mContext;
            private String mTitle;
            private String mContent;
            public Build(final Context mContext) {
            this.mContext = mContext;
        }

        public Build setmContent(String mContent) {
            this.mContent = mContent;
            return this;
        }

        public Build setmTitle(String mTitle) {
            this.mTitle = mTitle;
            return this;
        }

        public void setImgId(@DrawableRes int imgId) {
            this.imgId = imgId;
        }

        private XxDialog create() {
            XxDialog dialog = new XxDialog(mContext);
            dialog.setmTitle(mTitle != null ? mTitle : mContext.getResources().getString(R.string.dialog_title));
            dialog.setImgId(imgId != 0 ? imgId : R.drawable.dialog_icon);
            dialog.setmContent(mContent != null ? mContent : mContext.getResources().getString(R.string.dialog_content));
            return dialog;
        }

        public XxDialog show() {
            final XxDialog dialog = create();
            dialog.show();
            return dialog;
        }
    }
}

Dialog主题属性

1.设置Dialog标题,true:显示,false:不显示

<item name="android:windowNoTitle">true</item>

2.设置对话框的背景颜色

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

3.设置点击dialog以外的区域,dialog是否消失 true:消失,false:不消失

<item name="android:windowCloseOnTouchOutside">false</item>

4.是否允许对话框的背景变暗 true:变暗 false:不改变

<item name="android:backgroundDimEnabled">false</item>

5.对话框的背景变暗的程度,值越大越暗

<item name="android:backgroundDimAmount">0.3</item>

6.dialog的动画效果

<item name="android:windowAnimationStyle">@style/animation</item>
进入/退出动画 
<style name="animation">
    <item name="windowEnterAnimation">@anim/dialog_enter</item>
    <item name="windowExitAnimation">@anim/dialog_exit</item>
</style>

7.设置dialog的背景颜色

 <item name="android:windowBackground">@android:color/holo_red_dark</item>

8.Dialog的windowFrame框
值为null时,Dialog边框显示为透明

<item name="android:windowFrame">@android:color/holo_red_dark</item>

9.是否悬浮在activity上

<item name="android:windowIsFloating">true</item>