android中获取坐标

来源:互联网 发布:淘宝保证金计划不符合 编辑:程序博客网 时间:2024/06/06 02:51

###视图坐标和布局坐标:

视图坐标中,视图的大小取决于视图本身包含多少内容,它是不受屏幕大小的限制的,比如说一个ListView它的内容超出了屏幕,该ListView视图的大小是整个ListView的大小,而不是显示在屏幕中的那块区域的大小

布局坐标是有限的,是指父视图给子视图分配的大小,





所以getX()的值是该点或view距离它的父视图的左边界的距离


整个坐标系是以手机屏幕左上角为原点(0,0),如果在屏幕没有滑动之前,这一理解肯定是ok的,但在滑屏之后,就会产生很多歧义和混淆,原因在于使用过程当中,很多方法的参数并非是参照屏幕,而是相对于父视图,对这整个过程和后面自定义控件的坐标变化带来的各个参数变化来说理解起来就并不那么适合了,最开始给人的感觉是越来越不清楚这个坐标该怎么设置,好像坐标系总在发生变化,后来才慢慢在思维当中构建起视图与视图容器以及屏幕之间的关系。

android.view.View.layout(int l, int t, int r, int b)    layout的过程就是确定View在屏幕上显示的具体位置,在代码中就是设置其成员变量mLeft,mTop,mRight,mBottom的值,这几个值构成的矩形区域就是该View显示的位置,不过这里的具体位置都是相对与父视图的位置mLeft代表当前view.layout的这个view的左边缘离它的父视图左边缘的距离,拿上面“子视图2.layout(int l, int t, int r, int b) ”来说,它的父视图便是子视图1,2,3合起来形成的整个大矩形,那么这里将父视图的左上角定为(0,0),那么可以确定mLeft为一个子视图宽度320,以此类推,mTop指当前view的上边缘离父视图上边缘的距离。而以此为界,mRight所指的是当前view的右边缘离父视图左边缘的距离,一眼可以看出值为640(mLeft+自己的宽度),mBottom也是指当前view的下边缘离父视图的上边缘的距离。至于为何如此,大概是因为坐标系的缘故,坐标中的任何点都必须以(0,0)为起点,XY轴为衡量。

view的getLeft(), getRight(), getBottom(), getTop()方法都是相对于父视图的


参考 http://blog.csdn.net/lvxiangan/article/details/19971509



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 保修期内发动机坏了怎么办 6s主板进水了怎么办 新买的狗晚上叫怎么办 官网手机坏了怎么办 小米商城买手机不发货怎么办 小米商城分期额度不够怎么办 京东买家未退款怎么办 京东自营不退款怎么办 苏宁易购的无门槛15元怎么办 小米5shome键失灵怎么办 苹果电量用的快怎么办 苹果5s掉电快怎么办 小米5s返回键失灵怎么办 苹果5s漏电是怎么办 苹果6s手机漏电怎么办 5s返回键失灵怎么办 苹果5s返回键失灵怎么办 小米5返回键失灵怎么办 小米手机返回键失灵怎么办 萍果6splus关机键失灵怎么办 苹果5s很快没电怎么办 天猫分期付款没有花呗怎么办 淘宝花呗分期额度不够怎么办 支付宝余额支付超限怎么办 想分期花呗不够怎么办 来分期提现不了怎么办 帮朋友分期手机他不还钱怎么办 手机分期套现被骗了怎么办 学生既有分期办手机被骗怎么办? 京东刚买完东西第二天降价了怎么办 微信上买东西不给退货怎么办 微信买东西转红包被骗怎么办 买手机分期被骗了怎么办 苹果手机摔弯了怎么办 6s主板摔弯了怎么办 京东显示器坏了怎么办 苹果6s手机弯了怎么办 苹果手机变弯了怎么办 苹果手机屏幕摔碎了怎么办 苹果6p后壳弯曲怎么办 苹果手机后壳有点弯曲怎么办