How can I get android Honeycomb system's screen width and height?

前端 未结 3 1522
别跟我提以往
别跟我提以往 2020-12-17 05:41

my code:

Display display = activity.getWindowManager().getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayM         


        
相关标签:
3条回答
  • 2020-12-17 06:17

    This piece of code works for me (if you don't mind to use undocumented methods):

    Display d = getWindowManager().getDefaultDisplay();
    int width, height;
    
    Method mGetRawH;
    Method mGetRawW;
    try {
        mGetRawH = Display.class.getMethod("getRawWidth");
        mGetRawW = Display.class.getMethod("getRawHeight");
        width = (Integer) mGetRawW.invoke(d);
        height = (Integer) mGetRawH.invoke(d);
    } catch (NoSuchMethodException e) {
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    }
    
    //You should care about orientation here
    int o = getResources().getConfiguration().orientation;
    if (o == Configuration.ORIENTATION_PORTRAIT) {
        if (width > height) {
            int tmp = width;
            width = height;
            height = tmp;
        }
    } else if (o == Configuration.ORIENTATION_LANDSCAPE) {
        if (width < height) {
            int tmp = width;
            width = height;
            height = tmp;
        }
    }
    
    Log.d("d", "w=" + width + " h=" + height);
    
    0 讨论(0)
  • 2020-12-17 06:23

    1280 x 752 - landscape 800 x 1232 - portrait

    This 48 px are for the Andriod default notification bar...

    0 讨论(0)
  • 2020-12-17 06:34

    Actually device full screen width=800 and height=1280 (including status bar, title bar). If you run your code to get display size, the system will not include status bar height and title bar height, so you will get height as 1232 (1280-(status bar height + title bar height)).

    0 讨论(0)
提交回复
热议问题