设置自定义View的大小

可通过复写onMeasure()函数实现:

 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//  super.onMeasure(widthMeasureSpec, heightMeasureSpec);
 int w_size = MeasureSpec.getSize(widthMeasureSpec);  //获取原宽度值
 int h_size = MeasureSpec.getSize(heightMeasureSpec); //获取原高度值
 int w_mode = MeasureSpec.getMode(widthMeasureSpec);  //获取原宽mode值
 int h_mode = MeasureSpec.getMode(heightMeasureSpec); //获取原高mode值

 int widthMeasureSpec = MeasureSpec.makeMeasureSpec(w_size_new, w_mode); //w_size_new为新设置的宽度值,int型
 int heightMeasureSpec = MeasureSpec.makeMeasureSpec(h_size_new, h_mode); //h_size_new为新设置的高度值,int型
 super.onMeasure(widthMeasureSpec, heightMeasureSpec);   //设置
 }

 以上: widthMeasureSpec = w_size + w_mode;
   heightMeasureSpec = h_size + h_mode;
  makeMeasureSpec()用于计算新待设置的数值,与getSize()、getMode()作用相反。

参考:
http://blog.csdn.net/aben_2005/article/details/6415128
http://www.cppblog.com/guojingjia2006/archive/2012/03/27/169214.html
http://blog.csdn.net/jiangyoujishiyou/article/details/8108924

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值