如何以英寸为单位检测Android手机的屏幕尺寸?getSize方法从像素返回大小,但是当适应不同的屏幕尺寸时,它不起作用。屏幕具有相同的像素大小但是以英寸为单位,在这种情况下一些视图在屏幕上没有得到所需的空间。如果使用像素大小无法获得以英寸为单位的大小?
答案 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);
希望这会对你有所帮助。