如何以英寸为单位检测 android 手机的屏幕尺寸?getSize 方法从像素返回尺寸,但是当适应不同的屏幕尺寸时它不起作用。有屏幕具有相同的像素尺寸但英寸更小,在这种情况下,某些视图不是在屏幕上获得所需的空间。如果无法以英寸为单位获得大小,可以使用像素大小做同样的事情吗?
问问题
299 次
3 回答
0
您将通过,,, 将像素正确转换为英寸
要获得 a 的大小,可以说多少 1pixel = x 英寸。让这个人拿一把尺子放在屏幕上,测量一条线的宽度,例如 320 像素的线。然后你会知道 320pixels = x 英寸,给定 x 320/x = 1 英寸。
或者
对于您的地图,只需让 x 像素 = y 英寸,地图将通过不同的因素垂直和水平缩放,只要您显示水平和垂直比例,人们就会对大小有一个好主意。
编辑
嘿,我有一个更好的方法来做到这一点,但是当屏幕没有填满整个显示器时它不起作用(通常在 CRT 显示器上)。只需询问该人正在使用的显示器的尺寸以及您需要的一切设备。1024x768、800x600、640x480的比例都是4/3,物理显示器的高宽也是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
希望能帮助到你
于 2013-09-06T08:02:18.770 回答
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);
于 2013-09-06T08:02:35.330 回答
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);
希望这会帮助你。
于 2013-09-06T08:07:18.113 回答