2012-01-12 156 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;