自定义View的测量问题

原问题:自定义View的测量问题
分类:编程开发 > 最后更新时间:【2016-12-15 02:09:12】
问题补充:

Android群英传 3.2View的测量代码

@Override

protected void onMeasure(int widthMeasureSpec,

int heightMeasureSpec) {

setMeasuredDimension(

measureWidth(widthMeasureSpec),

measureHeight(heightMeasureSpec));

}

private int measureWidth(int measureSpec) {

int result = 0;

int specMode = MeasureSpec.getMode(measureSpec);

int specSize = MeasureSpec.getSize(measureSpec);

if (specMode == MeasureSpec.EXACTLY) {

result = specSize;

} else {

result = 200;

if (specMode == MeasureSpec.AT_MOST) {

result = Math.min(result, specSize);

}

}

return result;

}

请问 if (specMode == MeasureSpec.AT_MOST) {

result = Math.min(result, specSize);

语句有什么作用呢?前面result = 200 不是已经设置自定义View的wrap_content默认值为200px了么?

最佳答案

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24252901

很多的Android入门程序猿来说对于Android自定义View,可能都是比较恐惧的,但是这又是高手进阶的必经之路,所有准备在自定义View上面花一些功夫,多写一些文章。先总结下自定义View的步骤:

1、自定义View的属性

2、在View的构造方法中获得我们自定义的属性

[ 3、重写onMesure ]

4、重写onDraw

我把3用[]标出了,所以说3不一定是必须的,当然了大部分情况下还是需要重写的。

1、自定义View的属性,首先在res/values/ 下建立一个attrs.xml , 在里面定义我们的属性和声明我们的整个样式。

最佳答案由网友  屠神剑  提供
公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
18

分享到:

其他回答

其它网友回答:
没有配置好参数

    推荐