Monday, November 5, 2012

測量物件寬高

有時候在getWidth和getHeight無法起作用,
Romain Guy提到因為物件還沒畫出來,
因此此值會回傳0。

因同事的努力,
翻牆到有一位網友j研究了怎樣才會取到物件的寬和高。
用法是這樣的
  1.  final ImageView imageView = (ImageView) findViewById(R.id.imageview);        
  2.         
  3.       //------------------------------------------------方法一  
  4.       int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);  
  5.       int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);  
  6.       imageView.measure(w, h);  
  7.       int height =imageView.getMeasuredHeight();  
  8.       int width =imageView.getMeasuredWidth();  
  9.       textView.append("\n"+height+","+width);  
詳文請參見連結

1 comment:

houcheng said...

加一個 event listener, 去抓取物件 layout 完成的事件。 在該事件 handler 去呼叫 getheight 應該可以抓到。