您的位置:首页 > 其它

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

2016-12-01 12:01 239 查看

一.坐标系

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"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: