android 之popupWindow 在指定位置上的显示(转)

这篇文章主要介绍了popupWindow 在控件的各个方向上的显示(上、下、左、右),主要用到popupWindow 的showAtLocation()方法:

在控件的

(1)上方:

private void showPopUp(View v) {
		LinearLayout layout = new LinearLayout(this);
		layout.setBackgroundColor(Color.GRAY);
		TextView tv = new TextView(this);
		tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
		tv.setText("I'm a pop -----------------------------!");
		tv.setTextColor(Color.WHITE);
		layout.addView(tv);

		popupWindow = new PopupWindow(layout,120,120);
		
		popupWindow.setFocusable(true);
		popupWindow.setOutsideTouchable(true);
		popupWindow.setBackgroundDrawable(new BitmapDrawable());
		
		int[] location = new int[2];
		v.getLocationOnScreen(location);
		
		popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0], location[1]-popupWindow.getHeight());
	}

 

 

在控件的其他方向上显示只需修改最后一行代码即可,如:

(2)下方:

popupWindow.showAsDropDown(v);

 

 

(3)左边:

popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0]-popupWindow.getWidth(), location[1]);

 

 

(4)右边:

popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0]+v.getWidth(), location[1]);

 

 

 

 

 

 

 

 

猜你喜欢

转载自hz-chenwenbiao-91.iteye.com/blog/2086632