首页 > 代码库 > Android自定义对话框

Android自定义对话框

01.程式碼

01Dialog dialog = new Dialog(MenuShow.this,R.style.MyDialog);//指定自定義樣式
02dialog.setContentView(R.layout.dialog);//指定自定義layout
03 
04//可自由調整佈局內部元件的屬性
05LinearLayout ll = (LinearLayout)dialog.findViewById(R.id.lldialog);
06ll.getLayoutParams().width=360;
07 
08Window dialogWindow = dialog.getWindow();
09WindowManager.LayoutParams lp = dialogWindow.getAttributes();
10//dialogWindow.setGravity(Gravity.BOTTOM | Gravity.RIGHT);
11lp.x = 500; // 新位置X坐標
12lp.y = 450; // 新位置Y坐標
13lp.width = 100; // 寬度
14lp.height = 100; // 高度
15lp.alpha = 0.7f; // 透明度
16 
17//新增自定義按鈕點擊監聽
18Button btn = (Button)dialog.findViewById(R.id.dialog_button_ok);
19btn.setOnClickListener(new OnClickListener() {
20     
21    @Override
22    public void onClick(View v) {
23         
24    }
25});
26 
27//顯示dialog
28dialog.show();

02.styles.xml增加

1<style name="MyDialog" parent="@android:Theme.Dialog">
2     <item name="android:windowFrame">@null</item>
3     <item name="android:windowNoTitle">true</item>
4     <item name="android:windowBackground">@drawable/dialog_full</item>
5     <item name="android:windowIsFloating">true</item>
6     <item name="android:windowContentOverlay">@null</item>
7 </style>

03.自定義layout

01<?xml version="1.0" encoding="utf-8"?>
02<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03     
04    android:orientation="vertical"
05    android:layout_width="wrap_content"
06    android:layout_height="wrap_content"
07    android:gravity="center_vertical|center_horizontal"
08    >
09 
10    <LinearLayout
11        android:id="@+id/lldialog"
12        android:layout_width="match_parent"
13        android:layout_height="wrap_content"
14        android:orientation="vertical" >
15 
16        <LinearLayout
17            android:layout_width="match_parent"
18            android:layout_height="wrap_content"
19            android:background="@drawable/dialog_up"
20            android:orientation="vertical"
21            android:paddingBottom="10dp"
22            android:paddingTop="10dp" >
23 
24            <TextView
25                android:id="@+id/textView1"
26                android:layout_width="wrap_content"
27                android:layout_height="wrap_content"
28                android:layout_gravity="center_horizontal"
29                android:text="店名" />
30 
31            <TextView
32                android:id="@+id/textView2"
33                android:layout_width="wrap_content"
34                android:layout_height="wrap_content"
35                android:layout_gravity="center_horizontal"
36                android:text="地址" />
37        </LinearLayout>
38 
39        <LinearLayout
40            android:layout_width="match_parent"
41            android:layout_height="wrap_content"
42            android:background="@drawable/dialog_dn"
43            android:gravity="center"
44            android:padding="10dp"
45            android:paddingBottom="10dp" >
46 
47            <Button
48                android:id="@+id/dialog_button_cancel"
49                android:layout_width="0dp"
50                android:layout_height="51dip"
51                android:layout_weight="1"
52                android:background="@drawable/btn_bg_gray"
53                android:text="取消"
54                android:textColor="#FFFFFF" />
55 
56            <Button
57                android:id="@+id/dialog_button_ok"
58                android:layout_width="0dp"
59                android:layout_height="51dp"
60                android:layout_marginLeft="10dp"
61                android:layout_weight="1"
62                android:background="@drawable/btn_bg_green"
63                android:text="確定"
64                android:textColor="#FFFFFF" />
65        </LinearLayout>
66 
67    </LinearLayout>
68</LinearLayout>

 

 

http://www.dotblogs.com.tw/superlm102/archive/2013/02/05/90118.aspx