android获取屏幕分辨率的正确方法;获取到分辨率(垂直方向像素)的不正确

我通过下面的方法去获取屏幕分辨率的,但获取到的分辨率有时会不准确。原因是此方法有时候会忽略一些布局或控件的高度,从而得不到正确的高度。


public static String getDeviceResolution(Context context){
        //从系统服务中获取窗口管理器
        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics dm=new DisplayMetrics();
        //从默认显示器中获取显示参数保存到dm对象中
        wm.getDefaultDisplay().getMetrics(dm);
        return dm.widthPixels+"x"+dm.heightPixels;
    }

而通过另外一个方法则没有上述那种问题,可以获取到正确的屏幕分辨率。

    public static String getDeviceResolution(Activity activity){
        WindowManager windowManager = activity.getWindow().getWindowManager();
        Point point = new Point();
        windowManager.getDefaultDisplay().getRealSize(point);
        //屏幕实际宽度(像素个数)
        int width = point.x;
        //屏幕实际高度(像素个数)
        int height = point.y;
        return width + "x" +height;
    }

你可能感兴趣的:(android)