转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/52993128 【DylanAndroid的csdn博客】

Android获取屏幕实际高度跟显示高度,判断Android设备是否拥有虚拟功能键

一般的获取屏幕尺寸,但是不包括虚拟功能高度

    /** * 获取屏幕尺寸,但是不包括虚拟功能高度 * * @return */    public int getNoHasVirtualKey() {        int height = getWindowManager().getDefaultDisplay().getHeight();        return height;    }

通过反射,获取包含虚拟键的整体屏幕高度

    /** * 通过反射,获取包含虚拟键的整体屏幕高度 * * @return */    private int getHasVirtualKey() {        int dpi = 0;        Display display = getWindowManager().getDefaultDisplay();        DisplayMetrics dm = new DisplayMetrics();        @SuppressWarnings("rawtypes")        Class c;        try {            c = Class.forName("android.view.Display");            @SuppressWarnings("unchecked")            Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);            method.invoke(display, dm);            dpi = dm.heightPixels;        } catch (Exception e) {            e.printStackTrace();        }        return dpi;    }

虚拟键的高度

getHasVirtualKey() - getNoHasVirtualKey()

看打印结果,测试机为HTC M8d

  • 打印代码
 /** * 获取虚拟键的高度 */    private void getVirtuakeyHight() {        Logger.d("不包含虚拟键的高度=" + getNoHasVirtualKey());        Logger.d("包含虚拟键的高度=" + getHasVirtualKey());        Logger.d("虚拟键的高度=" + (getHasVirtualKey() - getNoHasVirtualKey()));    }
  • 打印结果

    不包含虚拟键的高度=1776包含虚拟键的高度=1920虚拟键的高度=144

更多相关文章

  1. Android XML�O置屏幕方向(android:screenOrientation)详解
  2. Android Webview适配屏幕宽度
  3. Android虚拟机大屏幕设置(开发平板电脑程序)
  4. android屏幕适配
  5. android各种分辨率和屏幕密度
  6. SmartQ7 Android 改变屏幕 分辨率
  7. android打开关闭屏幕
  8. Android中ListVIew高度自适应,解决ScrollView冲突问题以及Android
  9. android 唤醒屏幕

随机推荐

  1. 国内网游版号重开审批;腾讯、网易等游戏股
  2. 漫谈发版哪些事,好课程推荐
  3. 租房减税30,房东加租300!
  4. 社交软件撬TX墙角,到底还有没有汤喝
  5. 使用表格写课程表代码
  6. 开学第二天作业-H5 课程表与注册表单
  7. 常用注册表单功能
  8. 开学第一天作业
  9. python中使用charset判断字符串编码
  10. 2021年春招百度,阿里,美团等大厂全新PHP面