我想获得Android设备的屏幕尺寸。我正在使用这3个代码来做这个,但是这些代码给了我活动的大小;这是没有状态栏高度的大小。 在800px高度的平板电脑上,此代码为764px。 36px到达底部的状态栏。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
final int width = size.x;
final int height = size.y;
Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int height2= rectgle.bottom;
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int actualHeight = metrics.heightPixels;
但是我需要一个代码,它给我屏幕的实际大小。不是活动的。任何人都可以帮我这个吗? 谢谢。
答案 0 :(得分:4)
对于API等级17及以上版本,您可以使用getRealSize()
答案 1 :(得分:3)
此代码段会为您提供状态栏的高度。
Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int StatusBarHeight= rectgle.top;
int contentViewTop=
window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int TitleBarHeight= contentViewTop - StatusBarHeight;
因此屏幕的总高度为: -
height = height+TitleBarHeight;
原始答案是here。另请注意,这不会在onCreate中将该代码放在runnable中。