Android获取屏幕大小

原创
2016/11/29 23:18
阅读数 169

屏幕像素--包含虚拟键

华为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);
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部