2D屏幕上的一些类型

来源:互联网 发布:windows xp 自动登录 编辑:程序博客网 时间:2024/05/21 19:32

Point:描述的是2D平面上的点(x坐标,y坐标)

if(null == lastPoint){    lastPoint = new Point();}// 记录起始点的坐标int x = (int) event.getX();int y = (int) event.getY();lastPoint.set(x,y);
Rect: 描述 2D 平面上的一个矩形区域 (left 左, top 上, right 右, bottom 下 )
Rect rect = new Rect(left, top, right, bottom);// 获取矩形区域的中心int centerX = rect.centerX(); // 得到矩形区域中心的 x 坐标int centerY = rect.centerY(); // 得到矩形区域中心的 x 坐标// 获取宽度 高度int width = rect.width();int height = rect.height();// 检测是否包含该坐标public boolean contains(int x, int y)

View的触摸监听

可以在View中重写onTouchEvent方法监听触摸

//上一个点private Point lastPoint;@Override    public boolean onTouchEvent(MotionEvent event) {        int action = event.getAction();        switch (action) {            case MotionEvent.ACTION_DOWN:                //手指接触到视图的瞬间(按下瞬间)                if (null == lastPoint) {                    lastPoint = new Point();                }                //记录起始点的坐标                int x = (int) event.getX();                int y = (int) event.getY();                lastPoint.set(x, y);                break;            case MotionEvent.ACTION_MOVE:                //按下之后离开之前的整个过程                int x1 = (int) event.getX();                int y1 = (int) event.getY();                //获取跟上一个点之间的偏移量                int xDis = x1 - lastPoint.x;                int yDis = y1 - lastPoint.y;                //改变矩形的位置                left += xDis;                top += yDis;                invalidate();                lastPoint.set(x1, y1);                break;            case MotionEvent.ACTION_UP:                //手指离开的瞬间                break;        }        return true;    }