Get the real screen resolution on Ice Cream Sandwich

半世苍凉 提交于 2019-11-29 18:04:40

问题


Devices with Ice Cream Sandwich can use on-screen soft keys, and this means that some of the screen estate is taken by these keys. I need to get the real screen resolution, and not the resolution minus the space taken up by the soft keys.

I've tried the following, but neither works:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();
Log.d("SCREEN RES", "Width: " + width + ". Height: " + height);

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
height = metrics.heightPixels;
width = metrics.widthPixels;
Log.d("SCREEN RES", "Width: " + width + ". Height: " + height);

Here's the output:

12-19 20:18:42.012: D/SCREEN RES(20752): Width: 1196. Height: 720
12-19 20:18:42.012: D/SCREEN RES(20752): Width: 1196. Height: 720

The real screen resolution is 1280 x 720 pixels, not 1196 x 720 pixels.

Any ideas?

Edit

I'm using the following code to make the app full screen:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

回答1:


The API returns the number of pixels an app can use, so this is the correct result.




回答2:


From API level 17 (Android 4.2 Jelly Bean), you can get the real size of the display as follows:

Point size = new Point();
Display display = getWindowManager().getDefaultDisplay();
display.getRealSize(size);

size will now contain the display size based on the orientation (ie. x will be left/right relative to the user, not the device)



来源:https://stackoverflow.com/questions/8566322/get-the-real-screen-resolution-on-ice-cream-sandwich

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!