弹窗布局:java
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000" android:orientation="vertical"> <Button android:id="@+id/btn_popup_windows_item1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5dp" android:text="Item1" android:textSize="18sp"/> <Button android:id="@+id/btn_popup_windows_item2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5dp" android:text="Item2" android:textSize="18sp"/> </LinearLayout>
void showPopupWindow(View view){ View viewpw =View.inflate(TestActivity.this,R.layout.item_popup_window_layout,null); Button btn1=(Button) viewpw.findViewById(R.id.btn_popup_windows_item1); //设置背景透明效果 (注意Background必须背景色)(范围0~255) viewpw.getBackground().setAlpha(100); //建立PopupWindow 并设置宽 高 final PopupWindow popupWindow = new PopupWindow(viewpw, ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); //设置焦点,这样的或就能够实现点击popupWindow外部区域,关闭popupWindow popupWindow.setFocusable(true); //设置显示位置 popupWindow.showAsDropDown(view, 60,0); //指定View的下方 //popupWindow.showAtLocation(view, Gravity.CENTER,0,0); //屏幕中心 btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(TestActivity.this, "You click Item1", Toast.LENGTH_SHORT).show(); popupWindow.dismiss(); //关闭 PopupWindow } }); }