Android自定义控件探索之旅一1(笔记)

前言:自定义控件,是Android攻城狮进阶的必备技能,是Android应用研发的一门高级艺术,所以接下来的文章主要是学习和探索自定义控件,方便开发使用以及日后查阅。关于什么是自定义控件和为什么要使用自定义控件的这一些就不多说了,因为自定义控件设计的内容非常多,所以分几个系列去写,下面我们直接开始自定义控件探索之旅的第一篇。

Android自定义控件探索之旅一1

Android自定义控件探索之旅一2

Android自定义控件探索之旅一3

Android自定义控件探索之旅一4

Android自定义控件探索之旅一5

Android自定义控件探索之旅一6

Android自定义控件探索之旅一7

安卓自定义View基础 : 坐标系

我们先来复习下坐标系,坐标系是我们初中代数里面学到的东西(美帝高中僧才开始接触,所以天朝的教育一向都是策马奔腾呐)


熟悉的坐标系

笛卡尔坐标系告诉我们,事物的一切抽象概念都是参照于其所属的坐标系存在的,同一个事物在不同的作标系中就会有不同抽象概念来表示,坐标系表达的事物有联系的抽象概念的数量(既坐标轴的数量)就是该事物所处空间的维度。图中蓝色线和角度a 是在第一象限内,第一象限的两个坐标(x 和 y)都是正值......回忆了这么多我们就打住吧否则越扯越远,说完了笛卡尔我们在说Android的屏幕坐标系,先上图


Android屏幕坐标系

按照笛卡尔的说法,事物的一切抽象概念都是参照于其所属的坐标系存在的。所以Android的屏幕也有参照物,(参照物数值化的具象化也就是 x y轴上的值 ,通过实际数值即可测量位置),但是Android的屏幕系的坐标是反的(主要指的是Y轴),其Y轴是向下的,屏幕的左上角为原点(x = 0,y = 0),从屏幕原点向左,x 轴数值会增大;从屏幕原点向下,y 轴数值会增大,反之。

所以:在常见的笛卡尔数学坐标系中角度增大方向为逆时针(0度到90度为逆时针);在默认的屏幕坐标系中角度增大方向为顺时针(因为 y轴的反的,所以角度增大方向为顺时针)。

B:View的坐标系

我们知道,Android屏幕上面会有很多的button imageView textView 这些View控件,每一个控件设置宽高,设置间距开发者都可以通过 xml 布局或者代码布局去实现。

首先:View的坐标系统是相对于父控件而言的

getTop(); //获取子View左上角距父View顶部的距离

getLeft();  //获取子View左上角距父View左侧的距离

getBottom(); //获取子View右下角距父View顶部的距离

getRight(); //获取子View右下角距父View左侧的距离

给大家上一幅图更有助于理解:

View的坐标系

我们知道,在MotionEvent中   可以通过,event.getX() , event.getY() 去获取触摸点相对于其所在组件坐标系的坐标,但是它还有个很类似的API ,event.getRawX() , event.getRawY() ,这个API其实是获取触摸点相对于屏幕默认坐标系的坐标,上一幅图更有助于我们理解:


MotionEvent

其中, e 是我们触摸的点;银灰色区域是我们的组件;黄色区域部分是屏幕的默认坐标系(也就是最外层)蓝色线调用的是 e.getY()获取的是触摸点到组件的距离;e.getRawY()获取的是触摸点到屏幕的距离。


安卓自定义View基础 : 角度与弧度

为什么自定义控件会涉及到角度(angle)与弧度(radian),这个是我们可以理解的,比如说我们自定义这样一个圆弧,你必须要计算它的弧度,所以又涉及到了数学的一些计算公式(千万别被数学公式吓到了,其实就是一些很基本的运算)



角度与弧度的定义?

首先,角度和弧度一样都是描述角的一种度量单位。

角度:两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆周长的360分之一时,两条射线的夹角的大小为1度。(简单理解就是 我们口中最经常提及的角度,比如下面的一幅图,< AOB ,这就是角度)


弧度:两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当且仅当这段弧长正好等于圆的半径时,两条射线的夹角大小为1弧度。(既然是 弧 ,那么简单理解它对应的是一条曲线,度,是测量单位)。角度可能比较好理解,弧度可能有点晕,继续看图加深理解


弧度

当且仅当 AB的距离(注意,这里是弧长)等于 AO 或者 BO(半径)的时候,我们就称这是 1 弧度。所以,我们得知角度与弧度的换算公式:一个圆 对应的角度为360度(角度),对应的弧度为2π(弧度)

等价公式 : 360(角度) = 2π(弧度) == > 180(角度) = π(弧度)

进一步换算我们可以得知下面两个公式:

公式一:角度 = 180 / π * 弧度

公式二:弧度 = π / 180 * 角度

论证:

公式一,当弧度为 2 弧度的时候,角度 = 180 / π * 2 π = 360度 

公式二,当角度为360度的是吧,弧度 = π / 180 * 360 = 2 π

安卓自定义View基础 : 颜色

原来我对颜色的理解就是简单的RGB值,查阅了资料才发现颜色居然这么讲究,首先,安卓支持的颜色模式有以下四种:

颜色模式

其中ARG、ARGB这些字母,它表示通道类型,数值表示该类型用多少位二进制来描述。如ARGB8888则表示有四个通道(ARGB),每个对应的通道均用8位来描述。

注意:我们常用的是ARGB8888和ARGB4444,而在所有的安卓设备屏幕上默认的模式都是RGB565,请留意这一点。

其中 A R G B 代表的意思分别是:A(Alpha)表示的是透明度,R(Red)表示红色,G(Green)代表的是绿色,B(Blue)代表的是蓝色。定义颜色的基本方式有两种,第一种是在代码中设置,通过Color这个类,就可以设置颜色值;第二种是在XML中设置,通过 # 符号开头,后面跟十六进制的值。

自定义控件探索之旅的第一篇主要就介绍到这里,第一篇主要介绍了安卓自定义控件的基础,主要内容有Android的坐标系、角度与弧度的换算、安卓的颜色介绍,第一篇的内容就是这样。

未完待续。。。

如果这篇文章对您有开发or学习上的些许帮助,希望各位看官留下宝贵的star,谢谢。

Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果,谢谢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容