Android获取屏幕大小

屏幕像素--包含虚拟键android

华为P9,参数规格:spa

分辨率 FHD 1920×1080

获取屏幕像素对象

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

Debug获得的数据ci

获取到P9的像素:1812*1080get

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

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

/**获取虚拟功能键高度 */
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;
}

至此获取全屏像素结束table

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

Activity设置全屏,方法有不少bug

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);
相关文章
相关标签/搜索