Android 中获取手机屏幕的宽度和高度(单位为像素)

简介: Android 中获取手机屏幕的宽度和高度(单位为像素)

方法一:

//方法一:应用程序显示区域指定可能包含应用程序窗口的显示部分,不包括系统装饰
    Display display = getWindowManager().getDefaultDisplay();
        Point point = new Point();
        display.getSize(point);
        int width = display.getWidth();
        int height = display.getHeight();
        Log.e(TAG, "width: "+width+",height:"+height );

方法二:

//方法二:应用程序显示区域指定可能包含应用程序窗口的显示部分,不包括系统装饰
    Display display = getWindowManager().getDefaultDisplay();
        Point point = new Point();
        display.getSize(point);
        int width = point.x;
        int height = point.y;
        Log.e(TAG, "width: "+width+",height:"+height ); //720,1491

方法三:

//方法三:应用程序显示区域指定可能包含应用程序窗口的显示部分,不包括系统装饰
    DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
      int width = displayMetrics.widthPixels;
        int height = displayMetrics.heightPixels;
        Log.e(TAG, "width: "+width+",height:"+height ); //720,1491

方法四:

//方法四:获取的是实际显示区域指定包含系统装饰的内容的显示部分
    DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getRealMetrics(dm);
        int width = dm.widthPixels;
        int height = dm.heightPixels;
        Log.e(TAG, "width: " + width + ",height:" + height); //720,1560

getDefaultDisplay方法在API13时就已经被废弃,我们可以优先选择使用方法三中的方法,避免使用了getDefaultDisplay()方法。

如果我们运行在Android 系统11.0 对于API level 30的话我们可以使用以下方法,前提是运行的真机系统为Android 11.0系统才不会崩溃,且Android版本大于等于API level 30,否则还是用以上的方法。

方法五:

//方法五
        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.R) {
//            获取的是实际显示区域指定包含系统装饰的内容的显示部分
            int width = getWindowManager().getCurrentWindowMetrics().getBounds().width();
            int height = getWindowManager().getCurrentWindowMetrics().getBounds().height();
            Log.e(TAG, "width: " + width + ",height:" + height); //720,1491
            Insets insets = getWindowManager().getCurrentWindowMetrics().getWindowInsets()
                    .getInsetsIgnoringVisibility(WindowInsets.Type.systemBars());
            Log.e(TAG, "去掉任何系统栏的宽度:" + (width - insets.right - insets.left) + ",去掉任何系统栏的高度:" + (height - insets.bottom - insets.top));
        } else {
            //获取减去系统栏的屏幕的高度和宽度
            DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
            int width = displayMetrics.widthPixels;
            int height = displayMetrics.heightPixels;
            Log.e(TAG, "width: " + width + ",height:" + height); //720,1491
        }

具体注释已经给出,需要的可以直接拿去使用~


目录
相关文章
|
24天前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
280 2
|
2月前
|
开发工具 Android开发
rk平台Android12屏幕永不休眠
rk平台Android12屏幕永不休眠
39 1
移动端的打开方式,打开F12之后,就可以看到手机样式设计,移动端的初始化使用normalize.css代码库录到,box-sizing: border-box; 定宽度为多少就是多少,代码库,移动端
移动端的打开方式,打开F12之后,就可以看到手机样式设计,移动端的初始化使用normalize.css代码库录到,box-sizing: border-box; 定宽度为多少就是多少,代码库,移动端
|
1月前
|
XML API 开发工具
Android Bitmap 加载与像素操作
Android Bitmap 加载与像素操作
18 2
|
2月前
|
缓存 Android开发 开发者
安卓系统优化:提升手机性能的秘诀
【5月更文挑战第31天】本文将探讨如何通过一系列简单的步骤和技巧,对安卓系统进行优化,以提升手机的性能。我们将从清理无用文件、管理后台应用、调整系统设置等方面入手,帮助你的安卓设备运行更加流畅。
|
2月前
|
编解码 人工智能 自然语言处理
让大模型理解手机屏幕,苹果多模态Ferret-UI用自然语言操控手机
【5月更文挑战第29天】苹果推出Ferret-UI,一个结合图像识别和自然语言处理的多模态大语言模型,允许用户通过自然语言指令操控手机。该系统能适应不同屏幕布局,识别UI元素并执行相应操作,有望变革手机交互方式,提升无障碍体验,并在测试和开发中发挥作用。但需面对屏幕多样性及准确性挑战。[论文链接](https://arxiv.org/pdf/2404.05719.pdf)
51 3
|
2月前
|
Android开发
【苹果安卓通用】xlsx 和 vCard 文件转换器,txt转vCard文件格式,CSV转 vCard格式,如何批量号码导入手机通讯录,一篇文章说全
本文介绍了如何快速将批量号码导入手机通讯录,适用于企业客户管理、营销团队、活动组织、团队协作和新员工入职等场景。步骤包括:1) 下载软件,提供腾讯云盘和百度网盘链接;2) 打开软件,复制粘贴号码并进行加载预览和制作文件;3) 将制作好的文件通过QQ或微信发送至手机,然后按苹果、安卓或鸿蒙系统的指示导入。整个过程简便快捷,可在1分钟内完成。
|
2月前
|
Android开发
【通讯录教程】苹果安卓鸿蒙系统通用,如何大批量导入手机号码到手机的通讯录,下面教你方法,只需1分钟搞定几万个号码的导入手机电话本
该文介绍了一种快速批量导入手机通讯录的方法,适用于处理大量手机号的需求,如微商管理、客户资料整理等。在QQ同步助手开始收费后,提供了免费的替代方案。步骤包括:下载批量导入软件(链接提供腾讯云盘和百度网盘地址),清空通讯录(非必需),制作符合格式的通讯录文件,并按操作系统(苹果、安卓或鸿蒙)进行导入。整个过程只需1分钟,简便快捷。
|
23天前
|
前端开发 JavaScript Android开发
手机APP开发|基于安卓APP实现掌上党支部——党员app
手机APP开发|基于安卓APP实现掌上党支部——党员app
|
2月前
|
Shell Android开发
ADB更改Android设备屏幕显示方向
ADB更改Android设备屏幕显示方向
87 5