Android坐标系详解

来源:互联网 发布:网络借贷平台应用 编辑:程序博客网 时间:2024/06/16 16:18

Android坐标系详解

Android中有两种坐标系

  • 一种是绝对坐标系,即Android坐标系。将屏幕最左上角的顶点作为Android坐标系的原点。如图:
    Android坐标系

系统提供了两种方法获取Android坐标系中点的位置:

1.getLocationOnScreen(intlocation[]),该方法待补充

2.在触控时间中使用getRawX()、getRawY()方法

  • 一种是相对坐标系,即视图坐标系。以父视图左上角为坐标原点。如图:

视图坐标系

Android触控事件——MotionEvent

    // 单点触摸按下动作    public static final int ACTION_DOWN = 0 ;    // 单点触摸离开动作    public static final int ACTION_UP = 1 ;    // 触摸点移动动作    public static final int ACTION_MOVE = 2 ;    // 触摸动作取消    public static final int ACTION_CANCEL = 3 ;    // 触摸动作超出边界    public static final int ACTION_OUTSIDE = 4 ;    // 多点触摸按下动作    public static final int ACTION_POINTER_DOWN = 5 ;    // 多点离开动作
public static final int ACTION_POINTER_UP = 6 ;

通常情况下,我们会在OnTouchEvent(MotionEvent event)方法中通过event.getAction()方法获取触控事件的类型,并使用switch-case方法进行筛选,常见代码格式如下:

    @Override    public boolean onTouchEvent(MotionEvent event){        // 获取当前输入点X、Y坐标(视图坐标)        int x = (int)event.getX();        int y = (int)event.getY();        switch(event.getAction()){            case MotionEvent.ACTION_DOWN:            //            break;            case MotionEvent.ACTION_MOVE:            //            break;            case MotionEvent.ACTION_UP:            //            break;        }    }

下图总结了一些API,结合Android坐标系来看看他们具体的含义。
获取坐标值的各种方法

  • View提供的获取坐标的方法:getTop(),getLeft(),getRight(),getBottom().
  • MotionEvent提供的方法:getX(),getY(),getRawX(),getRawY().
0 0
原创粉丝点击