问题:在自定义view时,如果直接继承view或者viewgroup的控件,如果不在onMeasure中对wrap_content做处理,
需要重写onMeasure方法,具体如下:
protected void onMeasure(int widthMeasureSpec,int heightMeasureSpec){
super.onMeasure(widthMeasureSpec,heightMeasureSpec);
int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec);
int widthSpecSize = MaeasureSpec.getSize(widthMeasureSpec);
int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec);
int heightSpecSize = MaeasureSpec.getSize(heightMeasureSpec);
if(widthSpecMode == MeasureSpec.AT_MOST && heightSpecMode == MeasureSpec.AT_MOST){
setMeasureedDimension(mWidth,mHeight);
}else if((widthSpecMode == MeasureSpec.AT_MOST){
setMeasureedDimension(mWidth,heihgtMeasuerSize);
}else if(heightSpecMode == MeasureSpec.AT_MOST){
setMeasureedDimension(widthMeasureSize, mHeihgt);
}
}
其中,mWidth,mHeight为我们给view指定的一个默认的内部宽、高。
本文详细介绍了在Android中自定义View时如何处理wrap_content的情况,通过重写onMeasure方法来确保View能够正确地测量其大小。文中给出了具体的实现代码,并解释了MeasureSpec的作用。
1527

被折叠的 条评论
为什么被折叠?



