实现如图效果,长按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相关

更多相关文章

  1. Android(安卓)ActionBar的基本用法
  2. react-native-swiper苹果正常显示,Android不显示
  3. android popupwindow的使用与讲解
  4. Android学习之SharedPreferences
  5. Android数据存储访问——文件存储
  6. Android心得4.5--SQLite数据库--事务处理、ListView列表显示
  7. Jsp读取数据库返回json数据,Android客户端接收json
  8. Android(安卓)下载图片并显示在ImageView中
  9. 在android上用HttpURLConnection获取网页内容

随机推荐

  1. Android之辅助服务上篇————Accessibi
  2. Android NDK系列(三)-AS编写C文件没有提示
  3. 【Android 界面效果19】Android中shape的
  4. Android中调用C++函数的一个简单Demo
  5. Android Test - Auto Test Multi Activit
  6. Android工程引入第三方jar包
  7. 一点见解: Android事件分发机制(三)
  8. android测试工具大全
  9. Android ContentProvider总结
  10. 菜鸟学Android(安卓)之gravity与layout_g