标签:
1 /** 2 * 显示一个PopupWindow 3 * 4 * @param v 5 */ 6 private void show(View v) { 7 PopupWindow mPopupWindow; 8 LinearLayout mLayoutPopupWindow; 9 //window的布局文件 10 mLayoutPopupWindow = (LinearLayout) getLayoutInflater().inflate(R.layout.popup_window, null); 11 mPopupWindow = new PopupWindow(mLayoutPopupWindow, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 12 mPopupWindow.setFocusable(true); 13 //点击PopupWindow以外的的区域,window消失 14 mPopupWindow.setBackgroundDrawable(new BitmapDrawable()); 15 mPopupWindow.setOutsideTouchable(true); 16 //计算显示位置 这里显示在v的正下方 17 int[] locations = new int[2]; 18 v.getLocationOnScreen(locations); 19 Rect mRect = new Rect(locations[0], locations[1], locations[0] + v.getWidth(), locations[1] + v.getHeight()); 20 int screenWidth = getResources().getDisplayMetrics().widthPixels; 21 mPopupWindow.showAtLocation(v, Gravity.NO_GRAVITY, (screenWidth - getResources().getDimensionPixelSize(R.dimen.popup_window_width)) / 2, mRect.bottom - getResources().getDimensionPixelSize(R.dimen.popup_window_margin_top)); 22 }
标签:
原文地址:http://www.cnblogs.com/hsji/p/5194357.html