效果图
popup_window_addition.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@mipmap/addition_popup_window_background" android:orientation="vertical" android:paddingLeft="20dp" android:paddingTop="15dp" android:paddingRight="15dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_marginBottom="15dp" android:drawableLeft="@mipmap/ic_chat" android:drawablePadding="15dp" android:gravity="center" android:text="发起群聊" android:textColor="@android:color/white" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:layout_marginBottom="15dp" android:drawableLeft="@mipmap/ic_add_friend" android:drawablePadding="15dp" android:gravity="center" android:text="添加朋友" android:textColor="@android:color/white" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:layout_marginBottom="15dp" android:drawableLeft="@mipmap/ic_scan" android:drawablePadding="15dp" android:gravity="center" android:text="扫一扫" android:textColor="@android:color/white" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:layout_marginBottom="15dp" android:drawableLeft="@mipmap/ic_receive_pay" android:drawablePadding="15dp" android:gravity="center" android:text="收付款" android:textColor="@android:color/white" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:layout_marginBottom="15dp" android:drawableLeft="@mipmap/ic_feedback" android:drawablePadding="15dp" android:gravity="center" android:text="帮助与反馈" android:textColor="@android:color/white" /> </LinearLayout>
AdditionPopupWindow.java
package com.bu_ish.popup_window_example; import android.content.Context; import android.graphics.drawable.ColorDrawable; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import android.widget.PopupWindow; public class AdditionPopupWindow extends PopupWindow { public AdditionPopupWindow(Context context) { setWidth(LinearLayout.LayoutParams.WRAP_CONTENT); setHeight(LinearLayout.LayoutParams.WRAP_CONTENT); setBackgroundDrawable(new ColorDrawable()); setOutsideTouchable(true); View view = LayoutInflater.from(context).inflate(R.layout.popup_window_addition, null); setContentView(view); } }
MainActivity.java
package com.bu_ish.popup_window_example; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.addImageView).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AdditionPopupWindow popupWindow = new AdditionPopupWindow(MainActivity.this); popupWindow.showAsDropDown(v); } }); } }
注意
要想点击外部关闭PopupWindow,必须调用setBackgroundDrawable(Drawable)和setOutsideTouchable(boolean)
完整Demo链接:https://pan.baidu.com/s/1NF5-SUaOyHOWRWCFKfTWCA,提取码:c59o