1.Dialog布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg_fillet" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="@dimen/dp_35" android:background="@drawable/bg_txt_header" /> <TextView android:layout_width="match_parent" android:layout_height="@dimen/dp_70" android:gravity="center_vertical" android:paddingLeft="@dimen/dp_10" android:paddingRight="@dimen/dp_10" android:text="确定派车吗?" android:textColor="@color/color_333333" android:textSize="@dimen/font_size_14sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/dp_20" android:gravity="center" android:orientation="horizontal"> <Button android:id="@+id/btn_cancle" android:layout_width="@dimen/dp_70" android:layout_height="@dimen/dp_40" android:background="@drawable/selector_btn_cancle" android:text="取消" android:textColor="@color/white" android:textSize="@dimen/font_size_14sp" /> <Button android:id="@+id/btn_confirm" android:layout_width="@dimen/dp_70" android:layout_height="@dimen/dp_40" android:layout_marginLeft="@dimen/dp_20" android:background="@drawable/selector_btn" android:text="确定" android:textColor="@color/white" android:textSize="@dimen/font_size_14sp" /> </LinearLayout> </LinearLayout>2.父类的LinearLayout背景bg_fillet.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#FFFFFF" /> <stroke android:color="#FFFFFF" /> <corners android:radius="6dp" /> <padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" /> </shape>3.头部的TextView背景bg_txt_header.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/btn_bg" /> <stroke android:color="@color/btn_bg" /> <corners android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" android:topLeftRadius="6dp" android:topRightRadius="6dp" /> <padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp" /> </shape>4.Dlalog中的代码:
public class SendCarDialog extends Dialog{ private onConfirmListener listener; private Activity mActivity; private Button btn_cancle; private Button btn_confirm; public SendCarDialog(Activity activity, onConfirmListener l) { super(activity, R.style.dialog_with_alpha); this.mActivity = activity; this.listener = l; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_send_car); DisplayMetrics metric = new DisplayMetrics(); mActivity.getWindowManager().getDefaultDisplay().getMetrics(metric); WindowManager.LayoutParams p = getWindow().getAttributes(); p.width = (int) (metric.widthPixels) - 200; Window window = getWindow(); window.setAttributes(p); window.setGravity(Gravity.CENTER); setCancelable(true); this.setCanceledOnTouchOutside(true); btn_cancle = (Button)findViewById(R.id.btn_cancle); btn_confirm = (Button)findViewById(R.id.btn_confirm); btn_cancle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); btn_confirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { listener.onConfirm(); } }); } public interface onConfirmListener{ public void onConfirm(); } }5.Dialog样式:dialog_with_alpha:
<!-- 自定义时间Dialog弹出样式(底部有动画效果) --> <style name="dialog_with_alpha" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <!-- 边框 --> <item name="android:windowIsFloating">true</item> <!-- 是否浮现在activity之上 --> <item name="android:windowIsTranslucent">false</item> <!-- 半透明 --> <item name="android:windowNoTitle">true</item> <!-- 无标题 --> <item name="android:windowBackground">@android:color/transparent</item> <!-- 背景透明 --> <!-- <item name="android:backgroundDimEnabled">false</item> --> <item name="android:backgroundDimAmount">0.6</item> </style>
6.效果图: