【android】让popupwindow显示在view的上方并与该view水平居中对齐
16lz
2022-07-29
首先,废话少说,先上效果图:
代码:
public class MainActivity extends Activity implements OnClickListener{private Button showBtn1;private Button showBtn2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);showBtn1 = (Button) findViewById(R.id.showBtn1);showBtn2 = (Button) findViewById(R.id.showBtn2);showBtn1.setOnClickListener(this);showBtn2.setOnClickListener(this);}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubView popupView = LayoutInflater.from(this).inflate(R.layout.popup, null);PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);popupWindow.setBackgroundDrawable(new BitmapDrawable());popupView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);int popupWidth = popupView.getMeasuredWidth();int popupHeight = popupView.getMeasuredHeight();int[] location = new int[2];switch (v.getId()) {case R.id.showBtn1: v.getLocationOnScreen(location); popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, (location[0]+v.getWidth()/2)-popupWidth/2, location[1]-popupHeight);break;case R.id.showBtn2: v.getLocationOnScreen(location); popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, (location[0]+v.getWidth()/2)-popupWidth/2, location[1]-popupHeight);break;default:break;}}}
Demo下载:http://download.csdn.net/detail/u011494050/7787359
更多相关文章
- android EditText设置不可写
- android 使用html5作布局文件: webview跟javascript交互
- android studio调试c/c++代码
- IM-A820L限制GSM,WCDMA上网的原理(其他泛泰机型可参考)7.13
- 锁屏界面
- android(NDK+JNI)---Eclipse+CDT+gdb调试android ndk程序
- Android(安卓)version and Linux Kernel version
- Android(安卓)闹钟管理类的使用
- Android学习篇之Menu的使用