android 自定义View

来源:互联网 发布:数据库笛卡尔积是什么 编辑:程序博客网 时间:2024/06/06 21:44

自定义View分为三个步骤

onMeasure  测量宽高

onLayout  给空间定位

onDraw  绘制控件

自定义View  的几种实现

1.继承View

完成测量需要注意的细节

int mWidth;int mHeight;@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {    super.onMeasure(widthMeasureSpec,heightMeasureSpec);    int widthMode = MeasureSpec.getMode(widthMeasureSpec);    int heightMode=MeasureSpec.getMode(heightMeasureSpec);    int widthSize = MeasureSpec.getSize(widthMeasureSpec);    int heightSize = MeasureSpec.getSize(heightMeasureSpec);    //是否是warp_content模式    if (widthMode==MeasureSpec.AT_MOST&&heightMode==MeasureSpec.AT_MOST){        setMeasuredDimension(mWidth,mHeight);    }else if(widthMode==MeasureSpec.AT_MOST){        setMeasuredDimension(mWidth,heightSize);    }else if (heightMode==MeasureSpec.AT_MOST){        setMeasuredDimension(widthSize,mHeight);    }}

0 0