自定义Dialog
新建一个自定义的Dialog类,取名MyDialog,继承自Dialog
package com.and.mydialog; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; public class MyDialog extends Dialog { Context context; public MyDialog(Context context) { super (context); // TODO Auto-generated constructor stub this .context = context; } public MyDialog(Context context, int theme){ super(context, theme); this.context = context; } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super .onCreate(savedInstanceState); this .setContentView(R.layout.dialog); } }
相应的布局文件dialog.xml
<? xml version="1.0" encoding="utf-8" ?> < LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android" android:orientation ="vertical" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:gravity ="center_vertical|center_horizontal" android:background ="@drawable/dialog_bg" > < RelativeLayout android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:paddingLeft ="30dip" android:paddingTop ="10dip" > < ImageView android:id ="@+id/dialog_title_image" android:layout_alignParentLeft ="true" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:background ="@drawable/dialog_title_image" /> < TextView android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:layout_marginLeft ="10dip" android:layout_centerInParent ="true" android:text ="Title" android:layout_toRightOf ="@id/dialog_title_image" android:textColor ="#000000" android:textSize ="30sp" /> </ RelativeLayout > < TextView android:layout_width ="fill_parent" android:layout_height ="1dip" android:background ="@drawable/lins" android:layout_marginTop ="5dip" /> < TextView android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:text ="This is a custom dialog" android:textColor ="#000000" android:layout_marginTop ="10dip" android:layout_marginLeft ="30dip" /> < RelativeLayout android:layout_width ="fill_parent" android:layout_height ="wrap_content" android:paddingTop ="10dip" android:gravity ="bottom|center_horizontal" android:paddingBottom ="10dip" > < Button android:id ="@+id/dialog_button_cancel" android:layout_alignParentLeft ="true" android:layout_width ="100dip" android:layout_height ="wrap_content" android:text ="确定" /> < Button android:id ="@+id/dialog_button_ok" android:layout_width ="100dip" android:layout_height ="wrap_content" android:layout_toRightOf ="@id/dialog_button_cancel" android:layout_marginLeft ="35dip" android:text ="取消" /> </ RelativeLayout > </ LinearLayout >
最主要的,是自定义的Style,我们自定义一个式样,用来改变默认的Dialog样式
在values文件夹下新建一个styles.xml文件,如下。。。
<? xml version="1.0" encoding="utf-8" ?> < resources > < style name ="MyDialog" parent ="@android:Theme.Dialog" > <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/dialog_bg</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> </ style > </ resources >