一 坐标系
android 坐标系分为屏幕坐标系和view坐标系:
二 View的绘制流程
onMeasure(int width,int height) 测量
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (mOrientation == VERTICAL) {
measureVertical(widthMeasureSpec, heightMeasureSpec);
} else {
measureHorizontal(widthMeasureSpec, heightMeasureSpec);
}
}
onLayout() 设置位置
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
}
draw()绘制View
//draw()方法是view绘制的总调度方法
public void draw(Canvas canvas) {
...
drawBackground(Canvas); // 绘制背景(不能重写)
onDraw(Canvas); // 绘制主体
dispatchDraw(Canvas); // 绘制子 View
onDrawForeground(Canvas); // 绘制滑动相关和前景
...
}