view的构造函数
自定义view必须重写至少一个构造函数
// 如果View是在Java代码里面new的,则调用第一个构造函数
public CarsonView(Context context) {
super(context);
}
// 如果View是在.xml里声明的,则调用第二个构造函数zuo
// 自定义属性是从AttributeSet参数传进来的
public CarsonView(Context context, AttributeSet attrs) {
super(context, attrs);
}
// 不会自动调用
// 一般是在第二个构造函数里主动调用
// 如View有style属性时
public CarsonView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
//API21之后才使用
// 不会自动调用
// 一般是在第二个构造函数里主动调用
// 如View有style属性时(view有主题属性)
public CarsonView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
android坐标系
- 屏幕的左上角为坐标原点
- 向右为x轴增大方向
- 向下为y轴增大方向
View位置(坐标)描述及获取方式
- Top:子View上边界到父view上边界的距离
getTop()
- Left:子View左边界到父view左边界的距离
getLeft()
- Bottom:子View下边距到父View上边界的距离
getBottom()
- Right:子View右边界到父view左边界的距离
getRight()
MotionEvent中,get()和getRaw()的区别
//get() :触摸点相对于其所在组件坐标系的坐标
event.getX();
event.getY();
//getRaw() :触摸点相对于屏幕默认坐标系的坐标
event.getRawX();
event.getRawY();