最近搞了一个裁剪图片的小功能,当中遇到关于android 中的view 组件的获取位置的一些时候,但是总是有点地方算不对。最后发现了几个需要记录的点,特此记录下,以便后面查看。
注意点一:
首先android中的view 的四个值(left,top,right,bottom)是指两个坐标,
左上角的坐标(left,top)和右下角的坐标(right,bottom)
注意点二:
这里面的坐标系和我们平时接触的坐标系不一样,是x轴向右递增。y轴向下递增。
注意点三:
在view的获取边界坐标的四个函数getLeft(),getTop(),getRight(),getBottom()以及Rect 矩阵的四个边界的坐标(left,top,right,bottom)都是指相对于父容器的。例如,自己定义一个组件Mview放在布局的中央,那么Mview的左上点的坐标并不是(0,0)而是中间某个值,而如果在Mview里放个Rect,那么Rect的坐标系就是相对于Mview而言的。而这个Rect距离Mview外面的父组件的高度就是Rect.top 加上Mview.getTop() 的和。
如果还是不怎么理解可以参考以下的链接讲解的比较详细。
http://blog.csdn.net/androiddevelop/article/details/8373782