计算android屏幕大小?
可以用英寸计算android屏幕的对角线尺寸吗 我尝试过以下两种方法,但都不适合我的情况 方法1:计算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
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大小。