DisplayMetrics metrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
screenWidth = metrics.widthPixels;
screenHeight = metrics.heightPixels;
我使用这些代码来获得高度和屏幕的宽度如何获得真正的屏幕高度和宽度?
我Nexus7屏幕高度应该是1280
但它返回1205 ...
和我的minSdkVersion是水平8
,所以我不能使用这些方法:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screen_width = size.x;
int screen_height = size.y;
现在,我应该如何获得正确的屏幕尺寸?
编辑:
if (Build.VERSION.SDK_INT >= 11) {
Point size = new Point();
try {
this.getWindowManager().getDefaultDisplay().getRealSize(size);
screenWidth = size.x;
screenHeight = size.y;
} catch (NoSuchMethodError e) {
Log.i("error", "it can't work");
}
} else {
DisplayMetrics metrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
screenWidth = metrics.widthPixels;
screenHeight = metrics.heightPixels;
}
使用它的工程!
这有帮助吗? http://stackoverflow.com/questions/1016896/android-how-to-get-screen-dimensions – trojanfoe
不,我不能使用'display.getSize(size);'因为我的min SDK是level 8 – user1531240
那么if你阅读trojanfoe的链接中的一些评论,他们建议像这样:try {display.getSize(size); width = size.x; height = size.y; } catch(NoSuchMethodError e){width = display.getWidth(); height = display.getHeight(); } ....但是,即使你可以使用getSize()方法,我认为你仍然会得到这个可用屏幕高度的1205分辨率(即减去导航按钮)。不知道如何获得导航按钮的高度,但有兴趣和期待。 – ggenglish