获取Android设备屏幕大小

简介: 获取Android设备屏幕大小

获取Android设备屏幕大小


1.Java 代码


Android获取屏幕宽度与长度的五个方法 (taodudu.cc)  存在的问题 :获取到的数据 只是屏幕大小 没有包含系统导航栏的高度/宽度。

解决方法:使用 WindowMetrics

public void getScreenParams(){
        WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) {
            WindowMetrics currentWindowMetrics = wm.getCurrentWindowMetrics();
            int width = currentWindowMetrics.getBounds().width();
            int height = currentWindowMetrics.getBounds().height();
            screenInfo.setText("屏幕分辨率为:"+width+"*"+height);
            Log.e(getClass().getName(),"screen width:"+width+"   screen height:"+height);
        }else {
            int width = wm.getDefaultDisplay().getWidth();
            int height = wm.getDefaultDisplay().getHeight();
            screenInfo.setText("屏幕分辨率为:"+width+"*"+height);
            Log.e(getClass().getName(),"screen width:"+width+"   screen height:"+height);
        }
//
//
//        DisplayMetrics dm = new DisplayMetrics();
//
//        getWindowManager().getDefaultDisplay().getMetrics(dm);
//        int mScreenWidth = dm.widthPixels;// 获取屏幕分辨率宽度
//        int mScreenHeight = dm.heightPixels;
//
//        Log.e(getClass().getName(),"screen width:"+mScreenWidth+"   screen height:"+mScreenHeight);
//
//        int mScreenWidth1  = getResources().getDisplayMetrics().widthPixels;
//
//        int mScreenHeight1 = getResources().getDisplayMetrics().heightPixels;
//
//        Log.e(getClass().getName(),"screen width:"+mScreenWidth1+"   screen height:"+mScreenHeight1);
    }

2.adb 命令


wm 命令

adb shell wm
usage: wm [subcommand] [options]
       wm size [reset|WxH]
       wm density [reset|DENSITY]
       wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]

如何从adb命令行获取Android设备的屏幕尺寸? | 码农家园 (codenong.com)

(331条消息) Android 11(Android R)状态栏高度获取_沙漠一只雕得儿得儿的博客-CSDN博客


3.获取导航栏高度


public static int getStatusBarHeight(Context context) {
 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        WindowMetrics windowMetrics = wm.getCurrentWindowMetrics();
        WindowInsets windowInsets = windowMetrics.getWindowInsets();
        Insets insets = windowInsets.getInsetsIgnoringVisibility(WindowInsets.Type.navigationBars() | WindowInsets.Type.displayCutout());
        return insets.bottom;
    }       
    
    ....
}

getInsetsIgnoringVisibility


目录
相关文章
|
3天前
|
安全 物联网 测试技术
构建未来:Android与IoT设备的无缝交互深入探索软件自动化测试的未来趋势
【5月更文挑战第30天】在物联网(IoT)技术快速发展的当下,Android系统因其开放性和广泛的用户基础成为了连接智能设备的首选平台。本文将探讨如何通过现代Android开发技术实现智能手机与IoT设备的高效、稳定连接,并分析其中的挑战和解决方案。我们将深入挖掘Android系统的底层通信机制,提出创新的交互模式,并通过实例演示如何在Android应用中集成IoT控制功能,旨在为开发者提供一套可行的指导方案,促进IoT生态系统的进一步发展。
|
8天前
|
Shell 开发工具 Android开发
|
17天前
|
Android开发
Android获取蓝牙设备列表的方法
Android获取蓝牙设备列表的方法
21 5
|
17天前
|
Android开发
Android监听USB设备插拔
Android监听USB设备插拔
38 7
|
17天前
|
Android开发
Android 获取 USB设备列表
Android 获取 USB设备列表 【5月更文挑战第6天】
29 4
|
17天前
|
Shell Android开发
ADB更改Android设备屏幕显示方向
ADB更改Android设备屏幕显示方向
29 5
|
17天前
|
存储 监控 Java
Android Service之设备存储空间监控 DeviceStorageMonitorService
Android Service之设备存储空间监控 DeviceStorageMonitorService
31 2
|
18天前
|
安全 物联网 Android开发
构建未来:Android与IoT设备的无缝集成
【5月更文挑战第10天】 在数字化时代的浪潮中,智能设备与互联网的结合日益紧密。本文深入探讨了Android系统如何通过其开放性和灵活性成为连接物联网(IoT)设备的关键枢纽。我们将分析Android平台与IoT设备集成的技术途径,探索它们如何共同塑造智能家居、可穿戴技术以及工业自动化等领域的未来。文中不仅阐述了当前的发展状况,还展望了未来的发展趋势,特别是安全性和隐私保护方面的挑战及对策。
17 1
|
18天前
|
Android开发
Android修改媒体音量以及修改屏幕亮度
Android修改媒体音量以及修改屏幕亮度
30 0
|
Android开发 容器