2 baby bonnie Baby_Bonnie 于 2012.10.25 11:12 提问

用代码的方式获得屏幕的精确大小尺寸

我使用下面的代码来获得屏幕的大小,但是没有得到正确的值。

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    int width = display.getWidth(); 
    int height=display.getHeight();

数据返回平板装置尺寸的大小320 x 480。这个不是正确的值。
我想要的大小尺寸数据值是600 x 1024。

4个回答

hxn_217
hxn_217   2012.10.25 13:56
已采纳

我经常使用这个代码,从来没有报错:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();
curie_87
curie_87   2012.10.26 09:45
public static int getScreenWidth(Context context){
    WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = windowManager.getDefaultDisplay();
    return display.getWidth();
}
public static int getScreenHeight(Context context){
    WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = windowManager.getDefaultDisplay();
    return display.getHeight();
}
ueryueryuery
ueryueryuery   2012.10.26 13:50

LZ你程序中width的单位是px, 你说的600可能是dp值,可以使用下面的代码来验证一下:

final float scale = context.getResources().getDisplayMetrics().density;

打印出scale来看下,如果scale = 320/600 = 0.5333333的话,说明你所需要的600单位应该是dp。

liu222222223
liu222222223   2014.09.15 20:02

过期了,这个方法过期了,然后呢?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!