服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android实现简单的popupwindow提示框

Android实现简单的popupwindow提示框

2022-08-14 11:35smallredzi Android

这篇文章主要为大家详细介绍了Android实现简单的popupwindow提示框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Popupwindow大家肯定都特别熟悉了 像一般的提示框的话我们会用Dialog来做 但是随着设计要求的不断提高,App中各式各样的提示框都有,很明显普通的Dialog实现起来就比较吃力了 所以用Popupwindow来实现是最好不过了 ,于是我也自己写了一个popupwindow弹出的一个方法,代码量少简单灵活 先看一下效果图

Android实现简单的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

延伸 · 阅读

精彩推荐