您的位置:首页 > 移动开发 > Android开发

Android获取屏幕大小

2016-11-29 00:00 218 查看
屏幕像素--包含虚拟键

华为P9,参数规格:

分辨率FHD 1920×1080
获取屏幕像素

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth =dm.widthPixels;
int screenHeight =dm.heightPixels;

Debug得到的数据



获取到P9的像素:1812*1080

很明显heightPixels没包含底部虚拟键的Pixels



获取虚拟功能键像素高方式:

/**获取虚拟功能键高度 */
public int getVirtualBarHeigh() {
int vh = 0;
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
DisplayMetrics dm = new DisplayMetrics();
try {
@SuppressWarnings("rawtypes")
Class c = Class.forName("android.view.Display");
@SuppressWarnings("unchecked")
Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
method.invoke(display, dm);
vh = dm.heightPixels - windowManager.getDefaultDisplay().getHeight();
} catch (Exception e) {
e.printStackTrace();
}
return vh;
}

至此获取全屏像素结束

补充一点,如何覆盖虚拟功能键

Activity设置全屏,方法有很多

android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"

然后在Activity中添加如下代买

//view_pager_imgs为Activity中任一个控件对象
view_pager_imgs.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息