Android_(自定义view_3)

来源:互联网 发布:php正则验证身份证 编辑:程序博客网 时间:2024/05/20 10:12

笔记由个人学习整理

 @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int width, height;        //设置大小        int contentWidth = 200;        int contentHeight = 200;        width = getMeasurement(widthMeasureSpec, contentWidth);        height = getMeasurement(heightMeasureSpec, contentHeight);        //必须调用此方法        setMeasuredDimension(width, height);    }
 /*     * 辅助设置大小的方法     */    private int getMeasurement(int measureSpec, int contentSize) {        int specSize = MeasureSpec.getSize(measureSpec);        switch (MeasureSpec.getMode(measureSpec)) {            case MeasureSpec.AT_MOST:                return Math.min(specSize, contentSize);            case MeasureSpec.UNSPECIFIED:                return contentSize;            case MeasureSpec.EXACTLY:                return specSize;            default:                return 0;        }    }
  @Override    protected void onSizeChanged(int w, int h, int oldw, int oldh) {        if (w != oldw || h != oldh) {            //如果大小有变,要重置中心点以及半径            mCenter.x = w / 2;            mCenter.y = h / 2;            mRadius = Math.min(mCenter.x, mCenter.y);        }     }
0 0
原创粉丝点击