我使用下面的代码来查找屏幕尺寸,但我没有得到正确的值。
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();
int height=display.getHeight();
对于galaxy tab,它返回320 x 480 ..这是不正确的。
如何找到星系标签的正确屏幕尺寸,即600 x 1024。
答案 0 :(得分:3)
我总是使用这个,并且从未遇到过错误:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
答案 1 :(得分:1)
这听起来像Android认为您的应用程序是一个“遗留”应用程序(即专为旧版Android设计的应用程序)。来自Supporting Multiple Screens:
例如,假设某个设备使用的是WVGA中密度屏幕,被归类为“大屏幕”,但应用程序声明它不支持大屏幕;在这种情况下,当系统查询屏幕尺寸时,系统将再次“撒谎”到应用程序,并报告320x480。
答案 2 :(得分:1)
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();
}
答案 3 :(得分:0)
在你的程序中,宽度的单位是px,你说的600可能是dp值,你可以使用以下代码来验证:
final float scale = context.getResources().getDisplayMetrics().density;
如果scale = 320/600 = 0.5333333,那么可以看到比例,即600是dp值。