我们在日常开发过程中,除了使用Google官方提供的控件外,还会自定义View来完成需求;而对于我(小白)来说,肯定是需要从最基础的东西开始了。
1.View相关的基础知识
- 坐标系
在Android中的坐标系与我们数学中的坐标系有些不同,传统的坐标系如图:
而Android的屏幕坐标如下图:
由图可以清楚的看出,Android中是以左上角为坐标原点的。
- 角度以及弧度
角度与坐标系类似,以顺时针为标准。在此不一一展开。
相关的概念:
名称 | 定义 | 进制 |
---|---|---|
角度 | 以圆心为中心,散射两条射线,形成的弧长等于圆周长的1/360时,角度为1° | 60进制 |
弧度 | 以圆心为中心,散射两条射线,形成的弧长等于圆半径时,弧度为1 | 10进制 |
两者的转换关系如下:
弧度 = 角度pi/180
角度 = 弧度180/pi
- 颜色相关
Android中所支持的颜色有:
模式 | 备注 |
---|---|
ARGB8888 | 四通道高精度32位 |
ARGB4444 | 四通道低精度16位 |
RGB565 | Android屏幕默认16位 |
Alpha8 | 透明通道8位 |
每个字母分别对应单独的颜色。
A | 透明色 | 0(0x00) 透明 | 255(0xff) 不透明 |
---|---|---|---|
R | 红色 | 0(0x00) 无色 | 255(0xff) 红色 |
G | 绿色 | 0(0x00) 无色 | 255(0xff) 绿色 |
B | 蓝色 | 0(0x00) 无色 | 255(0xff) 蓝色 |
例:0x00000000 黑色 0xffffffff 白色
- 基本的数学知识
想要自定义View,肯定少不了要和一些数学姿势打交道了,比如最常用的三角函数等等。后面有遇到再补充。
2.View相关的基础知识
几个常见的函数:(注意:几个函数相对于父View而言的
)
函数名 | 含义 |
---|---|
getTop() | 获取左上角的y坐标值 |
getLeft() | 获取左上角的x坐标值 |
getBottom() | 获取右下角的y坐标值 |
getRight() | 获取右下角的x坐标值 |
例:
MotionEvent中的getX/getRawX 的区别:
函数名 | 含义 |
---|---|
getX | 触摸点所在View 的X坐标或者Y坐标值 |
getRawX | 触摸点在整个屏幕上 的X坐标或者Y坐标值 |
例: