我如何检测android手机的屏幕尺寸

时间:2013-09-06 07:56:23

标签: android

如何以英寸为单位检测Android手机的屏幕尺寸?getSize方法从像素返回大小,但是当适应不同的屏幕尺寸时,它不起作用。屏幕具有相同的像素大小但是以英寸为单位,在这种情况下一些视图在屏幕上没有得到所需的空间。如果使用像素大小无法获得以英寸为单位的大小?

3 个答案:

答案 0 :(得分:0)

您将通过,,,

将像素转换为英寸

要获得一个大小,我想说多少1pixel = x英寸。让这个人得到一把尺子并将它放在屏幕上并测量一条线的宽度,例如: 320像素的线。然后你会知道320像素= x英寸,给定x 320 / x = 1英寸。

或者

对于你的地图,只需让x像素= y英寸,地图将按照不同的因素垂直和水平缩放,如果你显示水平和垂直刻度,那么这个人会有一个好主意。

修改

嘿我有更好的方法来做到这一点,但是当屏幕没有填满整个显示器时(通常在CRT显示器上),它不起作用。只需询问此人正在使用的显示器尺寸以及您需要的所有设备。 1024x768,800x600,640x480的比例均为4/3,物理监视器的高度和宽度也是如此。 15英寸显示器上升9英寸,然后离开12英寸。所以高度(以像素为单位)均匀分成9英寸,宽度均匀分成12英寸。因此:

x_screen_resolution = 12"
y_screen_resolution = 9"

现在你有一个15英寸显示器的转换因子,从像素到英寸。比例4/3可能是一个标准,所以如果你得到显示器大小的英寸Z,那么

    x*x + y*y = Z*Z ... eq1
    x/y = 4/3 .... eq2

    x = 4y/3 ...

    16yy/9 + yy = ZZ
    25yy/16 = 9ZZ/16
    yy = 9ZZ/25
    -------------
    y = 3Z/5

    We now know y solve for screen width x
    x = sqrt(ZZ-yy)
    and thus 
    x_screen_resolution = x inches
    y_screen_resolution = y inches

希望有所帮助

答案 1 :(得分:0)

使用以下内容:

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);

答案 2 :(得分:0)

如果您想要显示尺寸(以像素为单位),可以使用以下代码:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

然后您可以添加比较高度的条件以满足您的需求。

以英寸为单位:

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);
Log.d("debug","Screen inches : " + screenInches);

希望这会对你有所帮助。