Android自定义View之基础知识

 

前言

从本篇开始我将会创作一个系列教程——Android自定义View,一方面是对自定义View进行学习和总结,另一方面也是为了方便以后复习,关于自定义View的内容网上也有很多教程,这里将其进行归纳整理,方便查阅。

参考资料:博客:http://www.gcssloop.com/customview/CustomViewIndex/

                  书籍:Android进阶之光

一、自定义View之坐标系

1、Android坐标系

在Android系统中,将屏幕左上角的顶点作为Android坐标系的原点,从原点开始向右为X轴的正方向,向下为Y轴的正方向,这个与数学中的平面直角坐标系中XY轴的方向是有区别的,这里需要注意,如下图中所示:

Android自定义View之基础知识_第1张图片

2、View坐标系

View坐标系是一个相对坐标系,它的坐标系是相对于父控件来说的,它和Android坐标系一起可以更好的帮助我们去理解自定义View中关于坐标系方面的内容,下面给出一张图可以很清晰的看出他们之间的关系,下方图中最外层是模拟的手机屏幕,其中有一个ViewGroup为父控件,在父控件中有一个子View是子控件,子View中的蓝色点作为触摸点,如下图所示:

Android自定义View之基础知识_第2张图片

从这张图中可以看出如下的计算关系:

getTop():获取View自身上边界到它的父View上边界的距离。

getLeft():获取View自身左边界到它的父View左边界的距离。

getRight():获取View自身右边界到它的父View右边界的距离。

getBottom():获取View自身下边界到它的父View下边界的距离。

getX():获取触摸点到它所在控件左边界的距离。

getY():获取触摸点到它所在控件上边界的距离。

getRawX():获取触摸点到整个屏幕左边界的距离。

getRawY():获取触摸点到整个屏幕右边界的距离。

二、自定义View之角度与弧度

1、角度:两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆周长的360分之一时,两条射线的夹角的大小为1度。(60进制,1°=60′)

2、弧度:两条射线从圆心向圆周射出,形成一个夹 角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角大小为1弧度。(10进制)

下面通过图片来看一下具体是什么意思,如下图所示:

Android自定义View之基础知识_第3张图片

圆一周对应的角度为360度(角度),对应的弧度为2π弧度。所以,360(角度) = 2π(弧度) ==> 180(角度) = π(弧度)

也即是如下的公式:

注意:屏幕坐标系中顺时针方向为角度增大的方向,这一点需要特别注意。

三、自定义View之颜色

1、颜色模式

Android自定义View之基础知识_第4张图片

其中字母表示通道类型,数值表示该类型用多少位二进制来描述。如ARGB8888则表示有四个通道(ARGB),每个对应的通道均用8位来描述。我们常用的是ARGB8888和ARGB4444,而在所有的安卓设备屏幕上默认的模式都是RGB565。

2、颜色定义

Android自定义View之基础知识_第5张图片

其中 A R G B 的取值范围均为0~255(即16进制的0x00~0xff),A 从0x00到0xff表示从透明到不透明,RGB 从0x00到0xff表示颜色从浅到深,当RGB全取最小值(0或0x000000)时颜色为黑色,全取最大值(255或0xffffff)时颜色为白色。

这里推荐给大家一篇我借鉴的文章:http://www.gcssloop.com/customview/Color,作者的文章写的还是比较详细的,我这里只是简单的介绍一下,我写文章的目的是做个笔记方便自己查看,因为自己写的理解和印象会更深刻。

你可能感兴趣的:(Android自定义View)