//弹出pop View view = View.inflate(MyMsgActivity.this, R.layout.msg_pop_layout, null); 如果想要使用窗口内部的控件,,,必须通过他的视图对象去找 pop_camera = view.findViewById(R.id.pop_camera); pop_picture = view.findViewById(R.id.pop_picture); // 创建一个popupwindow的对象 window = new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT); window.setBackgroundDrawable(new BitmapDrawable());//给窗口设置一个完全透明的背景图片 window.setOutsideTouchable(true);//设置窗口外部可以触摸 //思考:窗口里面的控件没有响应 //使用一个setFocusable 就可以实现,,,但是一般这2个方法也会同时使用 window.setTouchable(true);//设置窗口的焦点事件 window.setFocusable(true);//设置窗口本身可以触摸//进行显示
//window.showAsDropDown(btns);//显示在某控件的正左下方
//window.showAsDropDown(btns, -150, 200);//显示在某控件的左下方(带偏移量)
/**
* parent:父控件--->popupwindow相对于某个父控件的位置
* gravity:重力方向
* x:x轴的偏移量
* y:y轴的偏移量
*/
window.showAtLocation(view, Gravity.BOTTOM, 0, 0);
//一般执行完逻辑操作以后,,,窗口消失
window.dismiss();
<?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:orientation="vertical"> <Button android:id="@+id/pop_camera" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/selector" android:text="相机" /> <Button android:id="@+id/pop_picture" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/selector" android:text="相册" /> </LinearLayout>