自定义控件的时候怎么获得宽高

 我来答
匿名用户
推荐于2016-06-17
展开全部
如果是ViewGroup控件,就递归计算子控件的大小,把所有子控件的值相加。
如果是是View,这个取决于你的onMeasure(int width,int height)方法,其里面有个setMeasuredDimension(int width,int height)就是最终定下大小的方法,在调用这个方法前,View会调用getDefaultSize(int size ,int widthMeasureSpec);它会根据父控件给与的空间 和自身需要最小控件的值比较选取最小的, 只是View是默认的方法,也就是 你给它多少 它就要多少,它不会说wrap_content就会出个值,你给他300,他就300,你给他wrap_content,因为在relativeLayout所以空间充足,其大小直接是屏幕的width。
你重写View时,可以在onMeasure()中
记录 this.getMeasuredWidth()和this.getMeasuredHeight()2个值,

如果你要画一张填满的图
要么用ImageView scaleType为FIT_XY
或者自定义的:
src=new Rect(0,0,bmp.getWidth(),bmp.getHeight());
dst=new Rect(0,0,this.getMeasuredWidth(),this.getMeasuredHeight());
自定View就是用canvas.drawBitmap(bmp,src,dst,null);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式