2012-01-12 154 views
10

我需要獲取窗口高度和重量。
我有這個在我的代碼:在android上獲取窗口大小時出錯:「getWindowManager方法未定義」

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
width1 = metrics.widthPixels; 
height1 = metrics.heightPixels; 

,但我有一個錯誤:

The method getWindowManager is undefined

我應該導入此? 或者我可以通過不同的方式獲得熨平板的尺寸? 我已經進口

import android.view.Display; 
import android.view.Window; 
import android.view.WindowManager; 
import android.content.Context; 
import android.util.DisplayMetrics; 

回答

0

請檢查是否處於活動課,或者外部活動調用上面的方法。

對於壁紙而言,此方法無法獲取窗口的高度或寬度,需要使用曲面來獲取可用窗口的寬度和高度。

+0

沒有,我做了活壁紙和我打電話給壁紙的引擎 – 2012-01-12 10:56:27

34

您在哪裏使用此碼?

getWindowManager的錯誤表示找不到該方法,因爲您的類的根目錄沒有該方法。

試試這個:

((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(metrics); 

((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)) 
    .getDefaultDisplay().getMetrics(metrics); 

如果這不起作用,請粘貼您的活動

3

使用此:

display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
display.getWidth(); // to get width of the screen 
display.getHeight(); // to get height of the Screen 

享受。 :))

+4

getHeight()現在已棄用 – 2012-09-06 14:39:09

+0

@IgorG:你可以給我的鏈接,它被認爲是不贊成嗎? – 2012-09-07 09:36:29

+0

http://developer.android.com/reference/android/view/Display.html – 2012-09-07 19:00:01

1

你可以,如果你使用的是它的片段中使用,例如:

getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics); 
1

使用活動的ContextgetActivityContext()

DisplayMetrics metrics = new DisplayMetrics(); 
getActivityContext().getWindowManager().getDefaultDisplay().getMetrics(metrics); 
width1 = metrics.widthPixels; 
height1 = metrics.heightPixels;