从0到1Android自定义View(一)零散基础知识

栏目: IOS · Android · 发布时间: 8年前

内容简介:从0到1Android自定义View(一)零散基础知识
从0到1Android自定义View(一)零散基础知识
Android.jpg

前言

最近做个项目,写了大量的自定义 View ,突然今天就想写一个从 0 到1 的 Android 自定义 View 的文章,为了更好的总结和理解。最后,如果对每周的名企面试题或者本系列文章兴趣的可以关注公众号“于你供读”

目录

从0到1Android自定义View(一)零散基础知识
从0到1Android自定义View(一) 零散基础知识.png

一、Android 坐标系

1、Android 屏幕坐标

数学中常见的坐标系与 Android 系统上 View 的坐标系是有点差别的,Android 设备中,屏幕的左上角为坐标原点,向右为 x 轴增大方向,向下为 y 轴增大方向。

从0到1Android自定义View(一)零散基础知识
Android坐标系与数学坐标系的区别.png

2、View 的坐标

View 的坐标是相对父容器而言的

getTop();       //获取子View左上角距父View顶部的距离
getLeft();      //获取子View左上角距父View左侧的距离
getBottom();    //获取子View右下角距父View顶部的距离
getRight();     //获取子View右下角距父View左侧的距离

其中的源代码:

/**
* Top position of this view relative to its parent.
* 相对应父控件的top位置,单位为像素,即头部到父控件的距离
* @return The top of this view, in pixels.
*/ 
@ViewDebug.CapturedViewProperty 
public final int getTop() { 
    return mTop; 
}
从0到1Android自定义View(一)零散基础知识
View坐标系.png

3、MotionEvent中 get 和 getRaw 的区别

event.getX();       //触摸点相对于其所在组件坐标系的坐标
event.getY();

event.getRawX();    //触摸点相对于屏幕默认坐标系的坐标
event.getRawY();
从0到1Android自定义View(一)零散基础知识
getY和getRawY.jpg

二、Android 中的角度与弧度

Android 自定义 View 中,经常会用到一些角度弧度的计算,还有一些数学函数的应用,因此,Android 中的角度和弧度我们也需要了解。

1、角度与弧度的定义

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

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

2、角度和弧度的换算关系

圆一周对应的角度为360度(角度),对应的弧度为2π弧度。

故得等价关系:360(角度) = 2π(弧度) ==> 180(角度) = π(弧度)

得出公式:

一角度=π/180弧度

一弧度= 180/π角度

注意:

在常见的数学坐标系中角度增大方向为逆时针方向

在默认的屏幕坐标系中角度增大方向为顺时针方向

从0到1Android自定义View(一)零散基础知识
角度增大的方向.png

三、颜色

1、 Java 中定义颜色

xml 定义颜色相信刚接触 Android 的都基本会用的,所以这里就介绍下 Java 中定义颜色,毕竟颜色在自定义 View 中也是必不可少的。

int color = Color.BLACK;     //黑色

int color = Color.argb(127, 255, 0, 0);   //半透明红色

int color  = Color.parseColor("#ffffff");  //白色

2、透明度

透明度也是必不可少的,透明度分为 256 阶(0-255),计算机上用 16 进制表示为(00-ff)。透明就是 0 阶,不透明就是25 5阶,如果 50% 明就是 127 阶(256 的一半当然是 128,但因为是从 0 开始,所以实际上是127 )。

透明度 和 不透明度 是两个概念, 它们加起来是 1,或者 100%

ARGB 中的透明度alpha,表示的是不透明度。

从0到1Android自定义View(一)零散基础知识
透明度参照表.png

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

分布式服务架构:原理、设计与实战

分布式服务架构:原理、设计与实战

李艳鹏、杨彪 / 电子工业出版社 / 2017-8 / 89.00

《分布式服务架构:原理、设计与实战》全面介绍了分布式服务架构的原理与设计,并结合作者在实施微服务架构过程中的实践经验,总结了保障线上服务健康、可靠的最佳方案,是一本架构级、实战型的重量级著作。 《分布式服务架构:原理、设计与实战》以分布式服务架构的设计与实现为主线,由浅入深地介绍了分布式服务架构的方方面面,主要包括理论和实践两部分。理论上,首先介绍了服务架构的背景,以及从服务化架构到微服务架......一起来看看 《分布式服务架构:原理、设计与实战》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具