Android View体系(一)视图坐标系
前言
Android View体系是界面编程的核心,他的重要性不亚于Android四大组件,在这个系列中我会陆续讲到View坐标系、View的滑动、View的事件分发等文章来逐步介绍Android View体系。
1.View简介
View是Android所有控件的基类,同时ViewGroup也是继承自View,看下面这张图我们就会有一个直观的了解:
vc7Sw8ezo9PDtcTV4tCpv9i8/ra8yse8zLPQ09pWaWV3o6zI57n7ztLDx7j8usO1xNXGztXBy1ZpZXe1xNaqyrbM5c+1o6zEx8O0ztLDx9TavefD5rHgs8zKsdTyu+G4/LzTtcS1w9DE06bK1qGjPC9wPg0KPGgzIGlkPQ=="2android坐标系">2.Android坐标系
Android中有两种坐标系,分别为Android坐标系和视图坐标系,首先我们先来看看Android坐标系。
在Android中,将屏幕的左上角的顶点作为Android坐标系的原点,这个原点向右是X轴正方向,原点向下是Y轴正方向。
在下文讲到的MotionEvent提供的getRawX()和getRawY()获取的坐标都是Android坐标系的坐标。
3.视图坐标系
要了解视图坐标系我们只需要看懂一张图就可以了:
View获取自身宽高
getHeight():获取View自身高度 getWidth():获取View自身宽度View自身坐标
通过如下方法可以获得View到其父控件(ViewGroup)的距离:
getTop():获取View自身顶边到其父布局顶边的距离 getLeft():获取View自身左边到其父布局左边的距离 getRight():获取View自身右边到其父布局左边的距离 getBottom():获取View自身底边到其父布局顶边的距离MotionEvent提供的方法
我们看上图那个深蓝色的点,假设就是我们触摸的点,我们知道无论是View还是ViewGroup,最终的点击事件都会由onTouchEvent(MotionEvent event)方法来处理,MotionEvent也提供了各种获取焦点坐标的方法:
getX():获取点击事件距离控件左边的距离,即视图坐标 getY():获取点击事件距离控件顶边的距离,即视图坐标 getRawX():获取点击事件距离整个屏幕左边距离,即绝对坐标 getRawY():获取点击事件距离整个屏幕顶边的的距离,即绝对坐标您可能想查找下面的文章:
- android.view.InflateException: Binary XML file line #34: Error inflating class,
- Android 代码动态改变View的属性
- Android View分区域点击实现方案——1.根据坐标范围
- Android View体系(九)自定义View
- Android应用自定义View绘制方法手册
- 【读书笔记】【Android 开发艺术探索】第3章 View 的事件体系
- Android View事件分发机制
- Android View体系(六)从源码解析Activity的构成
- Android View体系(五)从源码解析View的事件分发机制
- Android View体系(二)实现View滑动的六种方法