【Android 自定义 View】基础知识:坐标系、角度、颜色

坐标系

1. 屏幕坐标系

移动设备一般定义屏幕左上角为坐标原点,向右为x轴增大方向,向下为y轴增大方向。
在这里插入图片描述

2. View 的坐标系

注意View 的坐标系统是相对于父控件而言的.

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

在这里插入图片描述

3. MotionEvent 中 get 和 getRaw 的区别

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

event.getRawX(); //触摸点相对于屏幕默认坐标系的坐标
event.getRawY();

在这里插入图片描述

角度

1. 角度

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

在这里插入图片描述

2. 弧度

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

3. 角度和弧度的换算关系

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

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

在这里插入图片描述

颜色

1. 安卓支持的颜色

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

以 ARGB8888 为例介绍颜色定义:
在这里插入图片描述
其中 A R G B 的取值范围均为0 ~ 255(即16进制的0x00~0xff)

A 从 0x00 到 0xff 表示从透明到不透明。

RGB 从 0x00 到 0xff 表示颜色从浅到深。

当 RGB 全取最小值(0 或 0x000000)时颜色为黑色,全取最大值(255 或 0xffffff)时颜色为白色

2. 几种创建或使用颜色的方式

  1. java 中定义颜色
int color = Color.GRAY;     //灰色
  1. xml 文件中定义颜色
    /res/values/color.xml 文件中如下定义:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="red">#ff0000</color>
    <color name="green">#00ff00</color>
</resources>
  1. java 文件中引用 xml 中定义的颜色:
int color = getResources().getColor(R.color.mycolor);
  1. xml 文件(layoutstyle)中引用或者创建颜色
<!--在style文件中引用-->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/red</item>
</style>
android:background="@color/red"     //引用在/res/values/color.xml 中定义的颜色

android:background="#ff0000"        //创建并使用颜色

3. 取色工具

1.ColorPix(for Win)
简单的取色调色工具,可以从屏幕取色,非常小而精简。

点击这里下载 ColorPix

2.Picpick(for Win)
PicPick具备了截取全屏、活动窗口、指定区域、固定区域、手绘区域功能,支持滚动截屏,屏幕取色,支持双显示器,具备白板、屏幕标尺、直角座标或极座标显示与测量,具备强大的图像编辑和标注功能。

点击这里获取 PicPick

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin-Dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值