300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Android自定义View(一) - View与ViewGroup

Android自定义View(一) - View与ViewGroup

时间:2022-04-25 01:13:52

相关推荐

Android自定义View(一) - View与ViewGroup

目录

1、View和ViewGroup关系

2、坐标系

2.1、Android坐标系

2.2、View坐标系

3、下一节介绍View的滑动

Android体统提供了很多控件用于展示以及和用户交互,比如TextView、Buttom、LinearLayout等。虽然它们的功能十分强大,但有时我们为了追求更便利及更好的效果扔旧需要自己去写自定义VIew。

这就需要我们对View的事件分发及View的工作流程十分熟悉。

1、View和ViewGroup关系

View是Android所有控件的基类,常用的TextView和ImageView是继承自VIew。

ViewGroup是View的组合,它可以包含很多View以及ViewGroup,而包含的ViewGroup又可以包含View和ViewGroup,以此类推,行程一个View树。我们常用的LinearLayout就是一个ViewGroup。ViewGroup也继承自View。

ViewGroup的组织结构图

继承关系

2、坐标系

这里优先提到坐标系,是因为坐标系数据额外知识,但是对于画自定义的View的位置却十分的重要。Android系统又两种坐标系,分别为Android坐标系和View坐标系。如果你连这个View的位置都不知道,怎么去操作View 呢?

2.1、Android坐标系

在Android中,将屏幕左上角的顶点作为坐标原点,原点向右侧是X轴的正防线,向下是Y轴的正方向。使用getRawX()和getRawY()方法获取到坐标值。

Android坐标系

2.2、View坐标系

1. View获取自身的高和宽

View的宽高系统给的方法是getHeight和getWidth,查看源码就会知道是怎么算出来的了,如下:

//右侧边到父的左侧距离 - 左侧边到父的左侧距离width=getRight()-getLeft();//下边到父的顶部距离 - 上边到父的顶部距离height=getBottom()-getTop();

2.View的自身坐标

通过如下方法可以获得View到其父控件(ViewGroup) 的距离。

getTop () :获取View自身顶边到其父布局顶边的距离。getLeft():获取View自身左边到其父布局左边的距离。getRight () :获取View自身右边到其父布局左边的距离。getBottom () :获取View自身底边到其父布局项边的距离。

3.触摸点

中间的那个圆点就是我们的触摸的点,自定义View伴随的点击时间、滑动时间都是根据你的触摸点来作为起点的。

无论View还是ViewGroup,最总的点击时间都会onTouchEvent(MotionEvent event)方法来处理,比如当前View在onInterceptTouchEvent中拦截,也不洗由当前View的onTouchEvent来处理你所拦截的事件。

MotionEvent也提供了获取焦点坐标的各种方法:

getX():获取点击事件距离控件左边的距离,即视图坐标。getY () :获取点击事件距离控件顶边的距离,即视图坐标。getRawX():获取点击事件距离整个屏幕左边的距离,即绝对坐标。getRawY():获取点击事件距离整个屏幕项边的距离,即绝对坐标。

3、下一节介绍View的滑动

这里先了解了基本的View和ViewGroup,以及坐标知识,脑中大概有了简单的坐标四位。

为了防止篇幅过长,自定义View的滑动板块在二中介绍:Android自定义View(二) - View的滑动

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。