在实际开发中,我们总是会和View打交道,例如View滑动、获取View坐标等等,那么就会牵扯到许多系统提供的Api方法,那么今天,我们就来详细了解一下,与之有关的系统方法。

一. 坐标系

首页,我们先需要了解一下Android里面的坐标系(二维坐标系)。Android中存在两种坐标系,Android坐标系(屏幕坐标系)和视图坐标系(View坐标系)。先上一张图,如下:

通过上面这张图,我们可以得知:

1.Android坐标系,是以手机屏幕左上角为原点,以水平向右为X轴正方向,以竖直向下为y轴正方向;

2.视图坐标系,原点是该View的父View的左上角,以水平向右为X轴正方向,以竖直向下为y轴正方向;

需要补充的一点是,**View视图可以是没有边界的,换句话说,就是View视图的大小可以比Android的手机屏幕大,甚至还大很多。还是依旧上图说明,**如下:

这张图中,黑色的线框是View的大小,黄色线框是手机屏幕的大小,我们可以看出,View的大小比手机屏幕还大,并且只有在手机屏幕里面,我们才能看到。目前手机屏幕只显示Buttton2按钮,不在黄色线框中的视图,是隐藏(不可见)状态,当我们手指在手机屏幕上左右滑动时,可能才显示其他隐藏的视图。所以,我们在布局中可能会遇到,有的View只显示了一部分,就是这个原因!

二.Android提供的Api方法解释说明

1.View常用到的方法。

(1)getLeft(),当前View的左边缘与它父View的左边缘的距离(视图坐标);

(2)getRight(),当前View的右边缘与它父View的左边缘的距离(视图坐标);

(3)getTop(),当前View的上边缘与它父View的上边缘(顶部)的距离(视图坐标);

(4)getBottom(),当前View的下边缘与它父View的上边缘(顶部)的距离(视图坐标);

(5)getWidth(),获取当前View的宽度;

(6)getHeight(),获取当前View的高度;

看一张图,我们可能就了然了。

2.MotionEvent中有这几个常用的方法getX(),getY(),getRawX(),getRawY()。(MotionEvent是该View的onTouchEvent()方法中的)

(1)getX(),触摸中心点与该View左边缘的距离(视图坐标);

(2)getY(),触摸中心点与该View上边缘(顶部)的距离(视图坐标);

(3)getRawX(),触摸中心点与屏幕左边缘的距离(绝对坐标);

(4)getRawY(),触摸中心点与屏幕上边缘(顶部)的距离(绝对坐标);

请留意,这几个是MotionEvent中的方法,调用的时候MotionEvent.getX()…。看一张图,如下:

三.总结

Android的View体系是界面编程的核心,它的重要性不亚于Android四大组件,View的试图坐标系总结如下:

更多相关文章

  1. Android(安卓)SDK 1.5中文版 (Application基础—1)
  2. Android中水波纹使用之自定义视图实现
  3. android mvp模式讲解
  4. Android中文API(119)——TableRow
  5. android控制显示和隐藏视图或控件的操作
  6. 优秀Android开源项目
  7. Android布局LinearLayout+RelativeLayout知识点概括
  8. Android(安卓)中文 API(123) —— AbsListView
  9. Android(安卓)3.1 r1 中文API文档 (121) —— ResourceCursorTre

随机推荐

  1. Delphi XE5 for Android(安卓)(十一)
  2. JavaScript或PHP检测Android设备
  3. 下拉选择菜单Spinner的使用
  4. Android重写onConfigurationChanged规避
  5. Android主线程与子线程的关系
  6. android TextView常用属性
  7. 关于ellipsize属性使用的一些细节
  8. 【Android】Android(安卓)SDK下载和更新
  9. 监听home键(android:launchMode="singleTa
  10. android context