今日面试不会的题目
2016-03-17 19:59
316 查看
今天遇到的面试官问了我一个自定义view控件的问题,以前接触过,但是不系统,今天就借助@刘望舒技术大神的博客系统的学习一下!
除了四大组件,其次重要的就属于View了,被称为界面的核心,
从图中可以发现我们日常所用的绝大读书控件都是继承VIew,所以我们自定义控件的方式基本有两种:1.继承VIew;2.继承已有的控件;但是说到底还是继承VIew,
所以要彻底掌握自定义控件,还得要彻底的了解VIew;先从安卓界面说起:
Android坐标系:
在Android中,将屏幕的左上角的顶点作为Android坐标系的原点,这个原点向右是X轴正方向,原点向下是Y轴正方向。
MotionEvent提供的getRawX()和getRawY()获取的坐标都是Android坐标系的坐标
视图坐标系:
getHeight():获取View自身高度
getWidth():获取View自身宽度
通过如下方法可以获得View到其父控件(ViewGroup)的距离:
getTop():获取View自身顶边到其父布局顶边的距离
getLeft():获取View自身左边到其父布局左边的距离
getRight():获取View自身右边到其父布局左边的距离
getBottom():获取View自身底边到其父布局顶边的距离
我们看上图那个深蓝色的点,假设就是我们触摸的点,我们知道无论是View还是ViewGroup,最终的点击事件都会由onTouchEvent(MotionEvent event)方法来处理,MotionEvent也提供了各种获取焦点坐标的方法:
getX():获取点击事件距离控件左边的距离,即视图坐标
getY():获取点击事件距离控件顶边的距离,即视图坐标
getRawX():获取点击事件距离整个屏幕左边距离,即绝对坐标
getRawY():获取点击事件距离整个屏幕顶边的的距离,即绝对坐标
除了四大组件,其次重要的就属于View了,被称为界面的核心,
从图中可以发现我们日常所用的绝大读书控件都是继承VIew,所以我们自定义控件的方式基本有两种:1.继承VIew;2.继承已有的控件;但是说到底还是继承VIew,
所以要彻底掌握自定义控件,还得要彻底的了解VIew;先从安卓界面说起:
Android坐标系:
在Android中,将屏幕的左上角的顶点作为Android坐标系的原点,这个原点向右是X轴正方向,原点向下是Y轴正方向。
MotionEvent提供的getRawX()和getRawY()获取的坐标都是Android坐标系的坐标
视图坐标系:
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():获取点击事件距离整个屏幕顶边的的距离,即绝对坐标
相关文章推荐
- 程序员经常说的二十多句话,吐槽吧程序员!
- 博主面试经历
- SDWebImage原理(面试)
- 面试技巧
- 程序员鄙视链
- 《The Non-Designer's Design Book(写给大家看的设计书)》--笔记整理
- 链表面试题
- [SQL-码农]超过了每行的最大字节数(8060)。如果结果行长度超过 8060 字节,则此表中行的 INSERT 或 UPDATE 将失
- [SQL-码农]SQL Server 2000超过了每行的最大字节数(8060)的原因和解决办法
- 黑马程序员—学习笔记—多线程
- iOS开发面试题目(高级向)
- 给未来程序员的15个顶级职业建议
- 某公司面试题:输入点分十进制ip地址 输出字符串ip地址整数
- Java基础学习总结(40)——Java程序员最常用的8个Java日志框架
- Java程序员最常用的8个Java日志框架
- 聊一下关于面试的话题,只谈共性,不谈个例,一家之言,仅供求职者参考:)
- 腾讯实习生面试一面笔试题总结
- 剑指offer面试题26之复杂链表的复制
- 程序员必备的代码审查(Code Review)清单
- 进程与线程的区别与联系(经典面试题)