android——代码实现在指定位置显示View
16lz
2021-01-26
实现如图效果,长按TextView则显示Dialog
步骤:
1、原理,要获取显示的位置,这里涉及到一个方法getLocationOnScreen。
int[] location = new int[2] ; view.getLocationInWindow(location); //确定组件在父窗体中的坐标时 view.getLocationOnScreen(location); //获取在整个屏幕内的绝对坐标,注意这个值是要从屏幕顶端算起,也就是包括了通知栏的高度。
其中 location
[0]代表x坐标,location [1] 代表 坐标。
2、代码:
DisplayMetrics displayMetrics = new DisplayMetrics(); final Display display = MainActivity.this.getWindowManager().getDefaultDisplay(); display.getMetrics(displayMetrics); myDialog = new MyDialog(this, R.style.MyDialogStyle); final WindowManager.LayoutParams params = myDialog.getWindow().getAttributes();am_showTip.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { int[] location = new int[2]; v.getLocationOnScreen(location); params.gravity = Gravity.BOTTOM; params.x = -location[0]; params.y =display.getHeight() - location[1]; myDialog.getWindow().setAttributes(params); myDialog.setCanceledOnTouchOutside(true); myDialog.show(); return false; } });
PopupWindow显示
popupWindow.showAtLocation(parent, Gravity.LEFT | Gravity.BOTTOM, x, y);
parent:点击的View
Gravity:和parent相对而言的方向
x:y 具体的xy坐标值,和Gravity相关
更多相关文章
- Android(安卓)ActionBar的基本用法
- react-native-swiper苹果正常显示,Android不显示
- android popupwindow的使用与讲解
- Android学习之SharedPreferences
- Android数据存储访问——文件存储
- Android心得4.5--SQLite数据库--事务处理、ListView列表显示
- Jsp读取数据库返回json数据,Android客户端接收json
- Android(安卓)下载图片并显示在ImageView中
- 在android上用HttpURLConnection获取网页内容