前言
该博客是讲解自定义的view的基础学习,适用于android的开发,自定义view是每个android程序员必须具备的技能,让我们来一起学习一下吧
坐标系
一.屏幕坐标系和数学坐标系的区别
由于移动设备一般定义屏幕的左上角为坐标原点,向右的方向为x轴增大的方向,向下为y轴增大方向,所以手机屏幕的坐标系和数学中常见的坐标系是稍微有差别的 。两个坐标系如下图:
实际屏幕上的默认的坐标系如下图:
二. View的坐标系
注意:View的坐标系统是相对于父控件而言的。
getTop() //获取的是view左上角距离父view顶部的距离
getBottom() //获取的是view右下角距离父view顶部的距离
getLeft() //获取的是view左上角距离父view左侧的距离
getRight() //获取的是view右下角距离父view左侧的距离
如下图
三 .MotionEvent中的get和getRaw的区别
event.getX() //触摸点相对于其所在的组件坐标系的坐标
event.getY()
event.getRawX() //触摸点相对于屏幕默认坐标系的坐标
event.getRawY()
如下图:
四。要点总结
- 屏幕坐标系和数学坐标系的区别
- view的坐标系是相对于父控件而言的
- MtionEvent的get和 getRaw()的区别
角度和弧度
一。弧度和角度的定义
角度:两条摄线从圆心向圆周射出,形成的夹角和夹角正对的弧,当这段弧长正好等于圆周长的360分之一时,两条射线的夹角的大小为1度.
弧度:两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角大小为1弧度.
角度和弧度的示意图如下:
三.弧度和角度的换算关系
圆一周对应的角度为360度(角度),对应的弧度为2π弧度。
故得等价关系:360(角度) = 2π(弧度) ==> 180(角度) = π(弧度)
维基百科的公式:
rad是弧度 deg是角度
四.一些细节问题
由于默认屏幕坐标系和常见数学坐标系的小差别(坐标系问题点这里),所以在角上必然也会存在一些区别,例如:
在常见的数学坐标系中角度增大方向为逆时针,
在默认的屏幕坐标系中角度增大方向为顺时针。
自定义View的颜色
android中的颜色包括颜色的定义和创建颜色的几种方式,以及颜色的混合模式
一,几种颜色的创建方式
二**.颜色的混合模式**