Popupwindow大家肯定都特别熟悉了 像一般的提示框的话我们会用Dialog来做 但是随着设计要求的不断提高,App中各式各样的提示框都有,很明显普通的Dialog实现起来就比较吃力了 所以用Popupwindow来实现是最好不过了 ,于是我也自己写了一个popupwindow弹出的一个方法,代码量少简单灵活 先看一下效果图
大致效果就是这样 当然你也可以将layout中的布局换成自己的布局 接下来是代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
private void ejectPopup() { View parent = ((ViewGroup) this .findViewById(android.R.id.content)).getChildAt( 0 ); View popView = View.inflate( this , R.layout.details_share, null ); int width = getResources().getDisplayMetrics().widthPixels; int height = getResources().getDisplayMetrics().heightPixels; // int i = height /5*2; popWindow = new PopupWindow(popView, width, ViewGroup.LayoutParams.WRAP_CONTENT); popWindow.setAnimationStyle(R.style.Search_PopupWindowAnimation); popWindow.setFocusable( true ); popWindow.setOutsideTouchable( false ); // 设置同意在外点击消失 ColorDrawable dw = new ColorDrawable( 0x30000000 ); popWindow.setBackgroundDrawable(dw); popWindow.showAtLocation(parent, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0 , 0 ); popWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); //被home键挡住 //给popup中的按钮做监听 WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = ( float ) 0.7 ; //0.0-1.0 getWindow().setAttributes(lp); popWindow.setOnDismissListener( new PopupWindow.OnDismissListener() { @Override public void onDismiss() { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = ( float ) 1 ; //0.0-1.0 getWindow().setAttributes(lp); } }); } |
这个就是调用的方法 背景变暗可以通过这段代码来实现
1
2
3
4
5
6
7
8
|
popWindow.setOnDismissListener( new PopupWindow.OnDismissListener() { @Override public void onDismiss() { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = ( float ) 1 ; //0.0-1.0 getWindow().setAttributes(lp); } }); |
当让也可以让ui妹子给你切一个透明的背景图片
最后是layout中的代码
1
2
3
4
5
6
7
8
9
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
<? xml version = "1.0" encoding = "utf-8" ?> < com.zhy.autolayout.AutoLinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" xmlns:app = "http://schemas.android.com/apk/res-auto" android:orientation = "vertical" android:layout_width = "match_parent" android:background = "#fff" android:layout_height = "239dp" > < com.zhy.autolayout.AutoLinearLayout android:gravity = "center" android:layout_width = "match_parent" android:layout_height = "51dp" > < TextView android:text = "请选择分享平台" android:textColor = "#29292a" android:textSize = "18sp" android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> </ com.zhy.autolayout.AutoLinearLayout > < TextView android:background = "@color/divider_color" android:layout_width = "match_parent" android:layout_height = "1dp" /> < com.zhy.autolayout.AutoLinearLayout android:layout_marginBottom = "10dp" android:layout_width = "match_parent" android:layout_height = "132dp" > < com.zhy.autolayout.AutoRelativeLayout android:id = "@+id/share_WX" android:layout_marginLeft = "13dp" android:layout_width = "0dp" android:layout_weight = "1" android:layout_height = "match_parent" > < ImageView android:id = "@+id/share_WX_icon" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerHorizontal = "true" android:layout_centerVertical = "true" app:srcCompat = "@drawable/wechat" /> < TextView android:text = "微信" android:layout_marginTop = "6dp" android:layout_below = "@id/share_WX_icon" android:layout_centerHorizontal = "true" android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> </ com.zhy.autolayout.AutoRelativeLayout > < com.zhy.autolayout.AutoRelativeLayout android:id = "@+id/share_WXPYQ" android:layout_width = "0dp" android:layout_weight = "1" android:layout_height = "match_parent" > < ImageView android:id = "@+id/share_WXPYQ_icon" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerHorizontal = "true" android:layout_centerVertical = "true" app:srcCompat = "@drawable/circleoffriends" /> < TextView android:text = "朋友圈" android:layout_marginTop = "6dp" android:layout_below = "@id/share_WXPYQ_icon" android:layout_centerHorizontal = "true" android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> </ com.zhy.autolayout.AutoRelativeLayout > < com.zhy.autolayout.AutoRelativeLayout android:layout_width = "0dp" android:id = "@+id/share_QQ" android:layout_weight = "1" android:layout_height = "match_parent" > < ImageView android:id = "@+id/share_QQ_icon" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerHorizontal = "true" android:layout_centerVertical = "true" app:srcCompat = "@drawable/qq" /> < TextView android:text = "QQ" android:layout_marginTop = "6dp" android:layout_below = "@id/share_QQ_icon" android:layout_centerHorizontal = "true" android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> </ com.zhy.autolayout.AutoRelativeLayout > < com.zhy.autolayout.AutoRelativeLayout android:layout_width = "0dp" android:layout_weight = "1" android:id = "@+id/share_QQKJ" android:layout_height = "match_parent" > < ImageView android:id = "@+id/share_QQKJ_icon" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerHorizontal = "true" android:layout_centerVertical = "true" app:srcCompat = "@drawable/zone" /> < TextView android:text = "空间" android:layout_marginTop = "6dp" android:layout_below = "@id/share_QQKJ_icon" android:layout_centerHorizontal = "true" android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> </ com.zhy.autolayout.AutoRelativeLayout > < com.zhy.autolayout.AutoRelativeLayout android:id = "@+id/share_WB" android:layout_width = "0dp" android:layout_height = "match_parent" android:layout_marginRight = "13dp" android:layout_weight = "1" > < ImageView android:id = "@+id/share_WB_icon" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerHorizontal = "true" android:layout_centerVertical = "true" app:srcCompat = "@drawable/weibo" /> < TextView android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_below = "@id/share_WB_icon" android:layout_centerHorizontal = "true" android:layout_marginTop = "6dp" android:text = "微博" /> </ com.zhy.autolayout.AutoRelativeLayout > </ com.zhy.autolayout.AutoLinearLayout > < TextView android:background = "@color/divider_color" android:layout_width = "match_parent" android:layout_height = "1dp" /> < com.zhy.autolayout.AutoLinearLayout android:id = "@+id/share_cancel" android:gravity = "center" android:layout_width = "match_parent" android:layout_height = "50dp" > < TextView android:gravity = "center" android:textSize = "15sp" android:textColor = "#2d2d2d" android:text = "取消" android:layout_width = "wrap_content" android:layout_height = "match_parent" /> </ com.zhy.autolayout.AutoLinearLayout > </ com.zhy.autolayout.AutoLinearLayout > |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/smallredzi/article/details/78820855