先看效果图:

android简单的自定义dialog_xml

1.主界面,主界面的布局只是一个button

package com.example.admin.ztest;

import .Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btn2 = (Button) this.findViewById(.btn2);
        btn2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                final CSOKDialog okCancelDialog = CSOKDialog.createBuilder(MainActivity.this);
                okCancelDialog.setMsg("胜利属于我们");
                //返回键是否关闭对话框  true 表示可以关闭
                okCancelDialog.setCancelable(false);
                //设置在窗口外空白处触摸时是否取消此对话框。 如果设置为true,则对话框设置为可取消
                okCancelDialog.setCanceledOnTouchOutside(false);
                okCancelDialog.show();
            }
        });
    }
}

2.自定义的dialog类:

package com.example.admin.ztest;

import .Dialog;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class CSOKDialog extends Dialog {

    private Context context = null;

    private TextView msgText;
    private TextView titleText;
    private Button okBtn;

    public static CSOKDialog createBuilder(Context context) {
        return new CSOKDialog(context);
    }

    public CSOKDialog(Context context) {
        this(context, R.style.CustomDialog);
        this.context = context;
    }

    public CSOKDialog(Context context, boolean cancelable,
                      OnCancelListener cancelListener) {
        super(context, cancelable, cancelListener);
        this.context = context;
    }

    public CSOKDialog(Context context, int theme) {
        super(context, theme);
        this.context = context;
        setDialogContentView();
    }

    private void setDialogContentView() {
        View view = LayoutInflater.from(context).inflate(R.layout.showdialog_ok, null);
        titleText = (TextView) view.findViewById(.title_text);
        msgText = (TextView) view.findViewById(.msg_text);
        okBtn = (Button) view.findViewById(.ok_btn);
        okBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Log.e("TAG","okBtn21");
                CSOKDialog.this.dismiss();
            }
        });
        setContentView(view);
    }

    public CSOKDialog setMsg(String msg) {
        if (null != msgText) {
            msgText.setText(msg);
        }
        return this;
    }

    public CSOKDialog setMsg(int resId) {
        if (null != msgText) {
            msgText.setText(context.getString(resId));
        }
        return this;
    }


    public CSOKDialog setAlertTitle(String t) {
        if (null != titleText) {
            titleText.setText(t);
        }
        return this;
    }


    public CSOKDialog setAlertTitle(int resId) {
        if (null != titleText) {
            titleText.setText(context.getString(resId));
        }
        return this;
    }

}

3.dialog布局 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http:///apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:minWidth="500.0dip"
    android:orientation="vertical">

    <RelativeLayout
        android:id="@+id/Layouttab1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:background="@drawable/b_11bgtop"
        android:orientation="vertical">

        <ImageButton
            android:id="@+id/imgright"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="5.0dip"
            android:layout_marginTop="1.0dip"
            android:background="@drawable/diaotitel_btn_css"
            android:visibility="gone" />

        <TextView
            android:id="@+id/title_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10.0dip"
            android:layout_toRightOf="@+id/imgleft"
            android:text="温馨提示"
            android:textColor="@color/alert_dialog_title"
            android:textSize="20.0sp" />
    </RelativeLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:background="@drawable/b_1bgdown"
        android:gravity="center"
        android:orientation="vertical">

        <TextView
            android:id="@+id/msg_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10.0dip"
            android:layout_marginRight="7.0dip"
            android:layout_marginTop="21.0dip"
            android:text="show message!"
            android:textColor="#ff222222"
            android:textSize="18.0sp" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="15.0dip"
            android:background="@color/alert_dialog_button_background"
            android:gravity="center_vertical"
            android:orientation="vertical">

            <Button
                android:id="@+id/ok_btn"
                android:layout_width="wrap_content"
                android:layout_height="@dimen/common_queren_button_height"
                android:layout_weight="1.0"
                android:background="@drawable/dialog_button_pressed"
                android:gravity="center"
                android:text="确   定"
                android:textColor="@color/alert_dialog_content"
                android:textSize="18.0sp" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="@dimen/common_queren_button_height"
                android:layout_weight="1.0"
                android:background="@color/colorAccent"
                android:gravity="center"
                android:text="确  哈哈212 定"
                android:textColor="@color/alert_dialog_content"
                android:textSize="18.0sp" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="@dimen/common_queren_button_height"
                android:layout_weight="1.0"
                android:background="@color/alert_dialog_divi_top"
                android:gravity="center"
                android:text="确方法是否   定"
                android:textColor="@color/alert_dialog_content"
                android:textSize="18.0sp" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

5.类型:


    <style name="CustomDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item><!-- 边框 -->
        <item name="android:windowIsFloating">true</item><!-- 是否浮现在activity之上 -->
        <item name="android:windowNoTitle">true</item><!-- 标题 -->
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:windowBackground">@color/fulltransparent</item><!-- 背景 -->
        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
        <item name="android:windowIsTranslucent">true</item><!-- 半透明 -->
        <item name="android:backgroundDimEnabled">true</item><!-- 模糊 -->
    </style>

其实,现在很多的dialog都使用dialogFragment,大家可以试试这个,很好用的