查找Android设备的宽高比

时间:2015-11-19 07:47:08

标签: android

在我的应用程序中,UI对于新推出的宽高比为4:3的Android设备看起来不太好。为了为这样的平板电脑提供更好的UI,我需要在运行时检测设备的宽高比,并需要进行必要的UI调整。 如何检测Android设备的宽高比是否为4:3?

我尝试使用Nexus 9设备(宽高比为4:3)。

使用以下代码:

DisplayMetrics widthMetrics = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay().getMetrics(widthMetrics);
int width = widthMetrics.widthPixels;

DisplayMetrics heightMetrics = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay().getMetrics(heightMetrics);
int height = heightMetrics.heightPixels;

float aspectRatio = (float) width/height;

Nexus 9的分辨率为1536 X 2048.在上面的代码中,我收到宽度值为2048.但高度值为1440(而不是1536)。因此,我收到的宽高比是1.4222223而不是预期的4/3(1.3333)。

如何解决此问题?

1 个答案:

答案 0 :(得分:-1)

Nexus 9使用软件按钮(家庭,背面,......)。这些按钮的高度将从displayHeight中减去。 纵向模式下的高度为48p,横向模式下的高度为42dp。所以你缺少96像素的高度:48dp * 2(xhdpi屏幕Nexus 9)

更多信息: software buttons height