计算android屏幕大小?

是否可以计算以英寸为单位的android屏幕对角线尺寸。计算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

回答:

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

但对于一些设备,这是不给予适当的回答。所以我总结以下第二种方法。

回答:

我用下面的代码,和它的作品在我的摩托戴伊。

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中的描述,我觉得我的方法应该在其他设备上工作。

以上是 计算android屏幕大小? 的全部内容, 来源链接: utcz.com/qa/262748.html

回到顶部