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

编程入门 行业动态 更新时间:2024-10-10 00:28:52

转载请注明出处:http://blog.csdn/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

更多推荐

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

本文发布于:2023-06-13 21:46:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1408633.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:高度   功能键   屏幕   设备   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!