版权声明: https://blog.csdn.net/ZHENZHEN9310/article/details/86477147
一、坐标系
屏幕坐标系: 默认以屏幕左上角为原点O (0,0),往左为正,往下为正
View坐标系: view布局时有四个属性(left、top、right、bottom)是相对于父布局的
-
childView相对于parentView
getTop(); //获取子View左上角距父View顶部的距离 getLeft(); //获取子View左上角距父View左侧的距离 getBottom(); //获取子View右下角距父View顶部的距离 getRight(); //获取子View右下角距父View左侧的距离
MotionEvent中getX()和getRawX()的区别
-
当手指触摸屏幕时会产生一个MotionEvent (里面封装了坐标和事件类型等)
event.getX(); //触摸点相对于其所在组件坐标系的坐标 event.getY(); event.getRawX(); //触摸点相对于屏幕默认坐标系的坐标 event.getRawY();
二、角度和弧度
-
两者进制是不同的(角度是60进制,弧度是10进制),在合适的地方使用合适的单位来描述会更加方便。
例如:角度是60进位制,遇到30°6′这样的角,应该转化为10进制的30.1°。 但弧度就不需要,因为弧度本身就是十进制的实数。
-
圆一周对应的角度为360度(角度),对应的弧度为2π弧度。
当弧长等于圆周长的360分之一时,两条射线的夹角的大小为1度. 当这段弧长正好等于圆的半径时,两条射线的夹角大小为1弧度. 圆周长=2πr
-
角度增加方向为顺时针。
三、颜色
Android支持的颜色
当RGB全取最小值(0或0x000000)时颜色为黑色,全取最大值(255或0xffffff)时颜色为白色
-
Java中定义的颜色
int color = Color.GRAY; //灰色,系统定义的颜色,内部是static final int 0xFF888888 int color = Color.argb(127, 255, 0, 0);//(alpha << 24) | (red << 16) | (green << 8) | blue; int color = Color.parseColor("#ffffff"); //string的转int int color = 0xaaff0000; //带有透明度的红色,16进制表示
-
xml中定义的颜色
#f00 //低精度 - 不带透明通道红色 #af00 //低精度 - 带透明通道红色 #ff0000 //高精度 - 不带透明通道红色 #aaff0000 //高精度 - 带透明通道红色
在/res/values/color.xml 文件中如下定义:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#ff0000</color>
<color name="green">#00ff00</color>
</resources>
-
Java中引用xml中颜色
ContextCompat.getColor(context, R.color.colorAccent);
参考: