] 通过FramentDialog实现 Android 4.0风格的通用 dialog,你怎么看?

来源:互联网 发布:警惕网络陷阱ppt 编辑:程序博客网 时间:2024/06/07 01:58
device-2012-12-20-210910.png 
主界面

?
代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?xmlversion="1.0"encoding="UTF-8"?>
<LinearLayout
        android:orientation="vertical"
        android:background="#FFFFFF"
        android:layout_width="294.0dip"
        android:layout_height="250.0dip"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <includelayout="@layout/common_dialog_title"/>
        <RelativeLayout
                android:gravity="center"
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="90.0dip"
                android:layout_weight="100.0"
                android:layout_gravity="center">
                <TextView
                        android:paddingLeft="5dip"
                        android:id="@+id/common_dialog_content_tv"
                        android:layout_below="@+id/verify_imageView"
                        android:layout_width="fill_parent"
                        android:layout_height="90.0dip"
                        android:layout_marginLeft="4.0dip"
                        android:layout_marginTop="5.0dip"
                        android:layout_marginRight="4.0dip"
                        android:layout_marginBottom="4.0dip"
                        android:textColor="#000"
                        android:singleLine="true"
                        android:text="确实要退出吗?"
                        android:textSize="18dip"/>
        </RelativeLayout>
        <include
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1.0"
                layout="@layout/common_dialog_bottom_bar"/>
</LinearLayout>


title

?
代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xmlversion="1.0"encoding="UTF-8"?>
<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="50dip"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <TextView
                android:textSize="20dip"
                android:textStyle="bold"
                android:textColor="#EE000000"
                android:ellipsize="marquee"
                android:id="@+id/common_dialog_title_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dip"
                android:singleLine="true"
                android:layout_centerVertical="true"
                android:paddingLeft="3dip"/>
        <View
                android:id="@+id/common_dialog_divider_line"
                android:background="#aa888888"
                android:layout_width="fill_parent"
                android:layout_height="2.0px"
                android:layout_alignParentBottom="true"/>
</RelativeLayout>

foot
?
代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xmlversion="1.0"encoding="UTF-8"?>
<LinearLayout
        android:orientation="vertical"
        android:id="@+id/dialog_bottom_bar"
        android:layout_width="fill_parent"
        android:layout_height="50.0dip"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <View
                android:background="#aacccccc"
                android:layout_width="fill_parent"
                android:layout_height="2.0px"/>
        <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
                <Button
                        android:textSize="18.0dip"
                        android:id="@+id/common_dialog_btn_ok"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="4.0dip"
                        android:text="确认"
                        android:layout_weight="1.0"
                        style="@style/Dialog.OKButton"/>
                <View
                        android:background="#aacccccc"
                        android:layout_width="2.0px"
                        android:layout_height="fill_parent"/>
                <Button
                        android:textSize="18.0dip"
                        android:id="@+id/common_dialog_btn_cancel"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="4.0dip"
                        android:text="取消"
                        android:layout_weight="1.0"
                        style="@style/Dialog.Button"/>
        </LinearLayout>
</LinearLayout>


代码
?
代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
packagecom.su.doubanrise.fragment;
 
importcom.su.doubanrise.MailEditActivity;
importcom.su.doubanrise.MainActivity;
importcom.su.doubanrise.R;
importcom.su.doubanrise.R.id;
importcom.su.doubanrise.R.layout;
importcom.su.doubanrise.util.FileDownLoader;
importcom.su.doubanrise.util.MLog;
importcom.su.doubanrise.widget.AsyncImageLoader;
 
importandroid.R.raw;
importandroid.content.Context;
importandroid.graphics.drawable.Drawable;
 
importandroid.os.AsyncTask;
importandroid.os.Bundle;
importandroid.support.v4.app.DialogFragment;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.ImageView;
importandroid.widget.TextView;
 
publicclassExitDialog extendsDialogFragmentimplementsView.OnClickListener {
 
        Context context;
        privateTextView content_tv;
        privateTextView title_tv;
        privateString content = "确实要离开吗?";
        privateString title = "确认";
 
        publicExitDialog(String content_tv, String title) {
                super();
                this.content = content_tv;
                this.title = title;
        }
 
        publicExitDialog() {
                super();
 
        }
 
        /**
         * 也可以在外部调用
         *
         * @param title
         * @param content
         */
        publicvoidsetDialog(String title, String content) {
                title_tv.setText(title);
                content_tv.setText(content);
        }
 
        @Override
        publicvoidonCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
               setStyle(0, R.style.MyDialogStyle);
        }
 
        @Override
        publicView onCreateView(LayoutInflater inflater, ViewGroup container,
                        Bundle savedInstanceState) {
                context = getActivity();
                View view = inflater.inflate(R.layout.common_dialog, null);
 
                Button common_dialog_btn_ok = (Button) view
                                .findViewById(R.id.common_dialog_btn_ok);
                Button common_dialog_btn_cancel = (Button) view
                                .findViewById(R.id.common_dialog_btn_cancel);
                title_tv = (TextView) view.findViewById(R.id.common_dialog_title_text);
                content_tv = (TextView) view
                                .findViewById(R.id.common_dialog_content_tv);
                setDialog(title, content);
                common_dialog_btn_cancel.setOnClickListener(this);
                common_dialog_btn_ok.setOnClickListener(this);
                returnview;
        }
 
        @Override
        publicvoidonClick(View v) {
 
                switch(v.getId()) {
 
                caseR.id.common_dialog_btn_ok:
                        ((MainActivity) context).finish();
                        this.dismiss();
                        break;
 
                default:
                        this.dismiss();
                        break;
                }
 
        }
}


sytle

<style name="MyDialogStyle" parent="@android:Theme.Dialog"><item name="android:windowFrame">@null</item><item name="android:windowNoTitle">true</item><item name="android:windowIsFloating">true</item><item name="android:windowContentOverlay">@null</item><item name="android:background">@android:color/transparent</item><item name="android:windowBackground">@android:color/transparent</item></style>




启动方式


ExitDialog exitDialog = new ExitDialog();
                exitDialog.show(getSupportFragmentManager(), "");


主要需要继承FragmentActivity