Android View体系(一)视图坐标系
Android 视图 View 体系 坐标系
2023-09-11 14:18:47 时间
http://blog.csdn.net/itachi85/article/details/50708391
前言
Android View体系是界面编程的核心,他的重要性不亚于Android四大组件,在这个系列中我会陆续讲到View坐标系、View的滑动、View的事件分发等文章来逐步介绍Android View体系。
1.View简介
View是Android所有控件的基类,同时ViewGroup也是继承自View,看下面这张图我们就会有一个直观的了解:
知道了View的层级关系有助于对View的理解,从上图可以发现我们常用的这些控件都是继承于View,如果我们更好的掌握了View的知识体系,那么我们在界面编程时则会更加的得心应手。
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 studio 报错 The specified Android SDK Build Tools version (27.0.3) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle
- [Android] 解析android framework下利用app_process来调用java写的命令及示例
- Android API之android.widget.Filterable
- Android API之android.view.View.MeasureSpec
- 二、Android应用的界面编程(一)界面编程与视图(View)组件
- 《android开发艺术探索》读书笔记(十五)--Android性能优化
- 《android开发艺术探索》读书笔记(十一)--Android的线程和线程池
- Android版OpenCV图像处理技术亲自验证[三十三]之图像加边框(附源码)
- Android stuido 解决Caused by: android.view.InflateException: Binary XML file line #8: Binary XML file
- Android Studio / IDEA 中.android 文件夹移动出默认位置
- android安卓应用和OBD的集成场景
- Android中socketpair双向通信详解
- android 系统图片为壁纸后,壁纸拉伸的现象
- Android 10.0 去掉开机正在优化应用Dialog
- Android ContentProvider简单总结
- 【Android 逆向】IDA 工具使用 ( 同步指定的 IDA View 视图 | Hex View 数据格式 | 过滤设置 )
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
- 一起学android之设置ListView数据显示的动画效果(24)
- Android 开源项目android-open-project解析之(三) ScrollView,TimeView,TipView,FlipView
- cocos2dx3.1-lua移植android流程
- Android - 控件android:ems属性
- Android 实现搜索关键字高亮显示+ListView的功能
- 【项目实战】Android APP的签名