关于Android popupWindow的位置显示 showAtLocation理解
2015-08-17 13:07
489 查看
近日发现PopupWindow的位置触摸不定,网上的例子解析就...
先上效果图:
.
我的目的是点击[编辑职位] 时显示popupWindow ,那么popWindow的显示参数如何设置呢?
首先需要知道的是,popupWindow的布局文件长宽我设置为160*42(dip)
代码解析:
这边我使用的是 showAtLocation(view,int,x,y) 方法显示popupWindow,
其中view设置哪个都一样(意思是,不论设置哪个,popwindow的相对参照物都是整个屏幕的根布局)
那么参数二是影响最大的:
1.设置Gravity.NO_GR***ITY的话,就相对屏幕左上角作为参照(即原点[0,0]是屏幕左上角)
2.若设置Gravity.LEFT的话,则原点为 [0,1/2屏幕高],即[x=0,y=1/2屏幕高度];
其他的没测。
然后showAtLocation(view,int,x,y)方法的第三个、第四个参数则是popwindow的左上角坐标。
x+10等于向右移动,x-10等于向左移动;
y+10等于向下移动,x-10等于向上移动
再看我的例子图片,获取了view的坐标;
设置popupWindow的y跟view的y一样。
设置 popupWindow的x为:(view的x坐标-2*popwindow长),至于为什么是两个,我测不出来,理论是减去一个的。若有人大神看到,请留言告知。谢谢
续:
经过同事提醒,终于找到2*popwindow的长原因了,
如下:
不同的分辨率,显示不一样,调试模式下看到如下:
先上效果图:
.
我的目的是点击[编辑职位] 时显示popupWindow ,那么popWindow的显示参数如何设置呢?
首先需要知道的是,popupWindow的布局文件长宽我设置为160*42(dip)
代码解析:
这边我使用的是 showAtLocation(view,int,x,y) 方法显示popupWindow,
其中view设置哪个都一样(意思是,不论设置哪个,popwindow的相对参照物都是整个屏幕的根布局)
那么参数二是影响最大的:
1.设置Gravity.NO_GR***ITY的话,就相对屏幕左上角作为参照(即原点[0,0]是屏幕左上角)
2.若设置Gravity.LEFT的话,则原点为 [0,1/2屏幕高],即[x=0,y=1/2屏幕高度];
其他的没测。
然后showAtLocation(view,int,x,y)方法的第三个、第四个参数则是popwindow的左上角坐标。
x+10等于向右移动,x-10等于向左移动;
y+10等于向下移动,x-10等于向上移动
再看我的例子图片,获取了view的坐标;
设置popupWindow的y跟view的y一样。
设置 popupWindow的x为:(view的x坐标-2*popwindow长),至于为什么是两个,我测不出来,理论是减去一个的。若有人大神看到,请留言告知。谢谢
续:
经过同事提醒,终于找到2*popwindow的长原因了,
如下:
不同的分辨率,显示不一样,调试模式下看到如下:
相关文章推荐
- Cordova android框架详解
- Android动画效果translate、scale、alpha、rotate详解
- Android(java)学习笔记168:Java异常分类
- 从零搭建 repo 服务器
- 我开发的第二个Android软件
- android 驱动文件权限设置
- Android 倒计时
- Android HAL JNI实例解析-led
- 从设计到实现,一步步教你实现Android-Universal-ImageLoader-辅助类
- Android 如何判断CPU是32位还是64位
- Android 开发 对话框Dialog dismiss和hide方法的区别
- 【译】Android主题动态切换开源库Prism基本原理2-搭配ViewPager使用
- 解决 android 的R文件不能生成 R cannot be resolved to a variable
- 在Mac下 重置Android Studio
- 在AndroidMainfest中锁定屏幕方向
- android跟随系统切换语言
- Android studio change package name
- [Android]GreenDao(1)--项目配置
- Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
- Android中Context详解 ---- 你所不知道的Context