[Android]如何获取设备真实尺寸

很多人都知道使用WindowManager.getDefaultDisplay.getDisplayMetrics(DisplayMetrics met)方法来获取屏幕宽度,但是这样其实是不一定准确的,因为有时候,会有小窗口(Virtual Display的存在)。

 

这样的话,我们就需要找出所有Display中尺寸最大的,把它当做设备的真实尺寸(可能会有比真实尺寸更大的Display,没具体确认过,这种情况本方法就不适用了)

 

代码如下:

    private static Point getPhysicalScreenSize(Context context){
        Point p = new Point();
        DisplayManager dm = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE);
        Display[] displays = dm.getDisplays();
        int maxWidth = -1, maxHeight = -1;
        DisplayMetrics met = new DisplayMetrics();
        for(Display d : displays){
            d.getMetrics(met);
            maxWidth = met.widthPixels > maxWidth ? met.widthPixels : maxWidth;
            maxHeight = met.heightPixels > maxHeight ? met.heightPixels : maxHeight;
        }
        p.x = maxWidth;
        p.y = maxHeight;
        return p;
    }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。