以英寸为单位获取物理显示大小,Android?

以英寸为单位获取物理显示大小,Android?,android,dimension,android-windowmanager,Android,Dimension,Android Windowmanager,有没有办法从语法上获得屏幕的实际高度和宽度 我试过这个 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); double x = Math.pow(dm.widthPixels/dm.xdpi, 2); double y = Math.pow(dm.heightPixels/dm.ydpi,

有没有办法从语法上获得屏幕的实际高度和宽度

我试过这个

        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        double x = Math.pow(dm.widthPixels/dm.xdpi, 2);
        double y = Math.pow(dm.heightPixels/dm.ydpi, 2);
        double screenInches = Math.sqrt(x+y);
我还发现,在纵向和横向中,它返回了不同的值

在我的nexus上,它的高度大概是4.41左右。这里有人有想法/建议吗

试试这个:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getRealSize(size);
int width = size.x;
int height = size.y;

DisplayMetrics dm = new DisplayMetrics();
display.getMetrics(dm);
double x = Math.pow(width/dm.xdpi, 2);
double y = Math.pow(height/dm.ydpi, 2);
double screenInches = Math.sqrt(x+y);

你所做的似乎是正确的。你在什么设备上测试它?在我的SGSIII 4.795398378933912上,看起来很好。是的,我在Nexus-4上测试,但我真正想要的是以英寸为单位的高度和宽度…我怎么能得到这个。我想你已经检查过这个了,它给出了屏幕的尺寸,还有其他建议以英寸为单位。