2015-05-29 70 views
1

我已經在這個網站要找到屏幕尺寸看了幾個帖子,其中大部分引用getWindowManager().getDefaultDisplay;查找屏幕尺寸的Android

我想這是我的代碼,並得到一個錯誤說cannot resolve method getWindowManager()。我的代碼如下,你可以完全理解:

public class MainActivity { 
    public static void main(String args[])throws IOException{ 

    Display display = getWindowManager().getDefaultDisplay; 
    //WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); 
    //int displayid = Display.DEFAULT_DISPLAY; 
    //Display display = DisplayManager.getDisplay(displayid); 
    int tlx = (168/800)*display.getWidth(); 
    int tly = (136/480)*display.getHeight(); 
    int brx = (631/800)*display.getWidth(); 
    int bry = (343/480)*display.getHeight(); 

    int rotation = display.getRotation(); 

這只是一些摘錄,以防某些事情沒有意義。另外,我正在使用顯示尺寸來查找應用程序中的屏幕元素。如果我應該使用窗口尺寸來實現這個功能,請告訴我如何去做,但我仍然需要顯示權限,以便可以使用諸如上面顯示的.getRotation()之類的方法。在此先感謝您的幫助。

回答

1

您需要從活動中引用getWindowManager。您MainActivity似乎並不被延長Activity讓你無論是需要擴展Actvity

public class MainActivity extends Activity { 

或者傳遞活動的那類,然後做這樣的事情。

Display display = myActivity.getWindowManager().getDefaultDisplay(); 

或者通過上下文

Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
+0

我在MainActivity擴展活動,我現在得到的錯誤「非靜態方法getWindowManager不能從靜態上下文引用。我也得到了此錯誤其他地方,我應該如何解決這個問題 – Jon

+0

Main不應該是靜態的onCreate,onResume和其他Activity方法在哪裏? – ChrisStillwell

+0

我正在根據其他事件運行特定的shell命令,類似於所以我想在將這些動作放入特定的Acti之前充實我想要進行的條件動作vity方法。這是一個壞主意嗎? – Jon