2011-06-15 30 views
0

訪問myView.getWidth()getHeight()總是返回零,我明白這是因爲在視圖佈局之前我打電話給他們太早。如何從活動訪問視圖的維度?

但是我如何從一個活動訪問視圖的大小?我看不到一種方法可以覆蓋,並且文檔不會提示我可以捕捉到的事件。

===================================

感謝唐納。這是我使用的代碼,它工作正常。

LinearLayout root = (LinearLayout)findViewById(R.id.main); 
Display d = ((WindowManager) this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
int screenWidth = d.getWidth(); 
int screenHeight = d.getHeight(); 
root.measure(screenWidth, screenHeight); 
View myView = findViewById(R.id.myView); 
int width = myView.getMeasuredWidth(); 

回答

1

看一看這個:http://developer.android.com/guide/topics/ui/how-android-draws.html

你有沒有打過電話上你的看法measure()然後getMeasuredWidth()

注意也有方法requestLayout()

+0

這看起來像我需要的,雖然measure()需要父寬度和高度傳遞給它,所以最好的方法來獲得屏幕寬度和高度,然後通過這些measure()來測量視圖層次? – 2011-06-15 13:48:31

+0

@Ollie C很高興你有它的工作 – 2011-06-15 14:10:10

0

在佈局設置爲活動的內容視圖後,您應該訪問維數。 使用findViewById(id)的ID只要找到它,然後調用myView.getWidth()

+0

這不起作用 - 值是在這一點上爲零。 – 2011-06-15 13:23:14

+0

然後你應該分享一些codez :) – woodshy 2011-06-15 13:29:24

相關問題