计算android屏幕大小?

计算android屏幕大小?,android,android-layout,mobile,Android,Android Layout,Mobile,可以用英寸计算android屏幕的对角线尺寸吗 我尝试过以下两种方法,但都不适合我的情况 方法1: DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int absoluteHeightInPx = displayMetrics.heightPixels; int absoluteWidthInPx = d

可以用英寸计算android屏幕的对角线尺寸吗

我尝试过以下两种方法,但都不适合我的情况

方法1:

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int absoluteHeightInPx = displayMetrics.heightPixels;
int absoluteWidthInPx = displayMetrics.widthPixels;     
double diagonalPixels = Math.sqrt((absoluteHeightInPx * absoluteHeightInPx) + (absoluteWidthInPx * absoluteWidthInPx));
double diagonalInInches = diagonalPixels / displayMetrics.densityDpi;
方法2:

float actualHeight = absoluteHeightInPx * deviceDensity;
float actualWidth = absoluteWidthInPx * deviceDensity;
float deviceDensity = displayMetrics.density;
float physicalPixelPerInchX = displayMetrics.xdpi;
float physicalPixelPerInchY = displayMetrics.ydpi;
float heightInInches = actualHeight / physicalPixelPerInchY;
float widhtInInches = actualWidth / physicalPixelPerInchX;
double diagonalInInches = Math.sqrt((heightInInches * heightInInches) + (widhtInInches * widhtInInches));
如果我错了,你能纠正一下吗

谢谢,
Easwar

我使用下面的代码,它在我的摩托车上工作

 DisplayMetrics metrics=new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);

    float height=metrics.heightPixels/metrics.xdpi;
    float width=metrics.widthPixels/metrics.ydpi;

    TextView tv=(TextView) findViewById(R.id.textview);
    tv.setText("The screen size is:"+FloatMath.sqrt(height*height+width*width));

真正的对角线长度是3.7英寸,代码给出了3.6979072,足够精确。根据SDK中的描述,我认为我的方法应该适用于其他设备。

我已经在8台android设备上测试了我的两种方法。第二种几乎是准确的


但对于少数设备,这并没有给出正确的答案。因此,我总结了第二种方法。

我已经看到了链接。但这对我不起作用。我在一些设备上进行了测试。我没有得到完美的答案。请帮助我。实际上,你必须将高度像素和宽度像素与屏幕密度相乘。如上所述如果密度=1,推导将是正确的。我认为您的设备具有1的密度。对吗?SDK文档说XDPI是X维度中每英寸的精确物理像素,而HealEngin是像素的绝对高度,因此用XDPI将其划分为x维的物理长度。这就是我如何看待您的。问题。我认为密度在这里不重要。顺便说一下,我的设备的密度是1.5。它提供的屏幕尺寸比实际屏幕大,是否有可能找到准确的物理屏幕尺寸。我在5.5英寸的设备上进行了测试,它给了我大约5.8大小。