Chinaunix首页 | 论坛 | 博客
  • 博客访问: 562179
  • 博文数量: 192
  • 博客积分: 3780
  • 博客等级: 中校
  • 技术积分: 1487
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-26 10:11
文章存档

2012年(6)

2011年(160)

2010年(26)

分类: Java

2011-11-10 20:10:19

在View的构造函数中获取getWidth()getHeight() 当一个view对象创建时,android并不知道其大小,所以getWidth()和getHeight()返回的结果是0,真正大小是在计算布局时才能计算出来,所以会发现一个有趣的事,即在onDraw( ) 却能取得长宽的原因。


int www = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
int hhh = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
this.view.measure(www, hhh);
this.realitemWidth=this.view.getMeasuredWidth();
this.realitemHeight=this.view.getMeasuredHeight();

 

http://blog.csdn.net/infsafe/archive/2010/03/10/5364256.aspx

Android中getWidth和getMeasuredWidth的区别

那用法呢?

1. getWidth在OnCreat的时候得到的是0..很奇怪, 我找到了原因: 当一个view对象创建时,android并不知道其大小,所以getWidth()和   getHeight()返回的结果是0,真正大小是在计算布局时才会计算,所以会发现一个有趣的事,即在onDraw( ) 却能取得长宽的原因。 

          那怎么在onCreat  的时候得到呢?   
  width = activity.getWindowManager().getDefaultDisplay().getWidth();  
  height = activity.getWindowManager().getDefaultDisplay().getHeight();


2.  getMeasuredWidth必须在parent view或者它自己调用measure()函数之后才能得到. measure函数就是计算该函数需要占用的空间大小.


http://hushaohua110.blog.163.com/blog/static/34781413201123195032955/


阅读(1160) | 评论(0) | 转发(0) |
0

上一篇:自定义View 常用方法

下一篇:android 搜索

给主人留下些什么吧!~~