自定义VIEW(学习笔记一)-基础知识

来源:互联网 发布:德国女人 下面知乎 编辑:程序博客网 时间:2024/05/17 02:44

一.坐标系


1.1.屏幕坐标系和数学坐标系的区别

数学中的坐标系

这里写图片描述

屏幕坐标系

这里写图片描述

实际屏幕上的默认坐标系如下:

这里写图片描述

1.2 View的坐标系

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

这里写图片描述

1.3 MotionEvent中 get 和 getRaw 的区别

    event.getX();       //触摸点相对于其所在组件坐标系的坐标    event.getY();    event.getRawX();    //触摸点相对于屏幕默认坐标系的坐标    event.getRawY();

这里写图片描述


二.角度和弧度

2.1 角度与弧度的定义

2.1.1 角度 :

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

这里写图片描述

2.1.2弧度 :

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

这里写图片描述

2.2 角度和弧度的换算关系

360(角度) = 2π(弧度) ==> 180(角度) = π(弧度)

2.3 补充

这里写图片描述


三.颜色

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

3.1.1 java中定义颜色

  int color = Color.GRAY;     //灰色

由于Color类提供的颜色仅为有限的几个,通常还是用ARGB值进行表示

  int color = Color.argb(127, 255, 0, 0);   //半透明红色  int color = 0xaaff0000;                   //带有透明度的红色

3.1.2 在xml文件中定义颜色

在/res/values/color.xml 文件中如下定义:

<?xml version="1.0" encoding="utf-8"?><resources>    <color name="red">#ff0000</color>    <color name="green">#00ff00</color></resources>

详解: 在以上xml文件中定义了两个颜色,红色和蓝色,是没有alpha(透明)通道的。

定义颜色以‘#’开头,后面跟十六进制的值,有如下几种定义方式:

  #f00            //低精度 - 不带透明通道红色  #af00           //低精度 - 带透明通道红色  #ff0000         //高精度 - 不带透明通道红色  #aaff0000       //高精度 - 带透明通道红色

3.1.3 在java文件中引用xml中定义的颜色:

  int color = getResources().getColor(R.color.mycolor);  int color = getColor(R.color.myColor);    //API 23 及以上支持该方法

3.14.在xml文件(layout或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" 
0 0