Android 11 之后,获取 Android 手机屏幕的尺寸(英寸)
文章目录
- 计算的方法
- Java 代码实现
- Kotlin 代码实现
计算的方法
手机屏幕的大小是指 手机屏幕 对角线 的长度,单位为 英寸 或 吋。
对角线的长度 LLL (英寸)
屏幕宽 WWW (英寸)
屏幕高 HHH (英寸)
L=W2+H2L = \sqrt{W^2 + H^2}L=W2+H2
如何获取屏幕的宽度(英寸),获取屏幕的高度(英寸)?
我们能获取到数据:
- 屏幕的宽高,单位是像素 (pixels):widthPixels,heightPixels,对应下面代码中的
point.x
和point.y
- 每英寸的像素数:xdpi (宽)和 ydpi (高),对应下面代码中的
metrics.xdpi
和metrics.ydpi
屏幕的宽度(英寸) widthInch=widthPixelsxdpiwidthInch = \frac{widthPixels}{xdpi}widthInch=xdpiwidthPixels
屏幕的宽度(英寸) heightInch=heightPixelsydpiheightInch = \frac{heightPixels}{ydpi}heightInch=ydpiheightPixels
屏幕的尺寸(英寸) ScreenSize=widthInch2+heightInch2ScreenSize = \sqrt{widthInch^2 + heightInch^2}ScreenSize=widthInch2+heightInch2
Java 代码实现
point.x
:屏幕的宽度,单位是像素
point.y
: 屏幕的高度,单位是像素
metrics.xdpi
:宽度上,每英寸像素数
metrics.ydpi
:高度上,每英寸像素数
point.x / metrics.xdpi
是以 英寸 为单位的宽度
point.y / metrics.ydpi
是以 英寸 为单位的高度
getRealSize(point)
可以获取到屏幕中状态栏(status bar)的高度
public static double calcScreenSize(Activity activity) {DisplayMetrics metrics = new DisplayMetrics();activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);Point point = new Point();if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {activity.getDisplay().getRealSize(point);} else {activity.getWindowManager().getDefaultDisplay().getSize(point);}double w = point.x / metrics.xdpi; // unit is inchdouble h = point.y / metrics.ydpi; // unit is inchdouble size = Math.sqrt(w * w + h * h);Log.d(TAG, String.format("Screen size: %.1f", size));return size;}
Kotlin 代码实现
fun calcScreenSize(): Double {val metrics = DisplayMetrics()windowManager.defaultDisplay.getMetrics(metrics)val point = Point()if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {display?.getRealSize(point)} else {windowManager.defaultDisplay.getSize(point)}val w: Double = (point.x / metrics.xdpi).toDouble() // unit is inchval h: Double = (point.y / metrics.ydpi).toDouble() // unit is inchval size = Math.sqrt(w * w + h * h)Log.d(TAG, String.format("Screen size: %.1f", size))return size}
Android 11 之后,获取 Android 手机屏幕的尺寸(英寸)相关推荐
- android : 更新android 11 后 获取设备唯一码的方式
android 11 发布了 android 11 以前使用的MAC的设备唯一码的方式被废弃了,因为11不让用了,然后就去官方上找推荐了; 之前的获取MAC的地址,有兴趣的可以点进去看看 官方推荐使用 ...
- 手机屏幕反转尺寸_如何在Android手机的屏幕上反转颜色
手机屏幕反转尺寸 If you (or someone you love) has vision issues, however, the tiny fonts and complex colors ...
- android 11 kotlin获取蓝牙mac地址
android 11 kotlin获取蓝牙mac地址 加权限 要获取system.uid系统权限,具体不细述,网上可查 AndroidManifest.xml中添加蓝牙权限 <uses-perm ...
- Android入门笔记之更改手机屏幕方向
Android入门笔记之更改手机屏幕方向 <1>简介 通过一个按钮组来改变横屏竖屏显示. <2>关键步骤 主要通过android.app.activity.getRequest ...
- android 11 版本更新内容,android 11怎么更新 android 11更新方法
android 11怎么更新?在最近,谷歌和OPPO手机相继推出android 11,那我们该怎么将自己手机的Android版本升级到android 11呢,android 11怎么更新,下面就和小编 ...
- uniapp微信小程序怎样获取宽高?获取系统信息?微信小程序 获取用户手机屏幕高度与宽度信息等
第一种方案(推荐) "vw" = "view width" "vh" = "view height" 使用 CSS3 引 ...
- 手机图片到底要做多宽才可以适应所有手机屏幕的尺寸?
现在移动互联网正搞得风生水起,大伙也不甘示弱,周围的朋友会经常从微信里面发发图片,设计师们也经常制作移动网站和手机APP等,这些过程中大家都会碰到这样一个问题:手机图片到底要做多宽才可以适应所有手机屏 ...
- Android开发_获取手机屏幕的尺寸
1.设备不存在虚拟键: 第一种获取方法: public static void getScreenWidthAndHeight(Context context) {Display display = ...
- 紫光展锐六款芯片支持Android 11,SC9863A备受手机厂商青睐
近日,紫光展锐发布的一则消息吸引了业界的关注.该公司表示,通过同步参与Android 11的开发,其六款智能手机芯片已完成对Android 11的部署.在Google发布Android 11正式版的同 ...
最新文章
- Angular:Promise.all()的具体应用
- Eclipse构建路径
- 自定义CSS博客皮肤
- 【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )
- 北京活动 | 新书首发手把手带你的产品从0开始验证一个新的业务
- Ruby和SHELL中如何遍历指定目录的文件
- python实例化类执行顺序_Python实例化class的执行顺序
- protobuf java文档_Java中使用Protobuf
- HTML5学习笔记(二)
- HtmlHelper扩展 及 页面编码化
- JavaScript RegExp(正则)
- PyTorch 成程序员“新宠”,TensorFlow 风光不再?
- 小程序授权及获取unionid,
- Spark Streaming系列-1、什么是Spark Streaming?
- 静态条件下三轴加速度求角度的算法
- springboot vue uniapp公交路线查询系统源码
- Failed to start LSB: Bring up/down错误解决方法
- events插件的使用
- Mongodb std::exception::what(): basic_filebuf::underflow error reading the file: iostream error
- 智能音箱的差评|为什么我要买一堆垃圾回来吃灰!
热门文章
- html中搜索按钮是什么意思,htmlbutton标签是什么意思?htmlbutton标签的使用细节
- 科大讯飞x Datawhale糖尿病遗传风险检测挑战赛
- 一个好用的在线录屏软件
- 2020十大销售管理系统(排名不分先后)
- Redis连接池配置详解
- 专利 | 一种基于脑电神经反馈控制智能机器人的方法
- python计算机视觉pdf百度云下载_Python计算机视觉编程pdf
- 带上问题来学redis,看到不吃亏(什么是redis?缓存问题、数据一致性、redis配置文件汉化版)
- 分布式实时处理系统架构设计与机器学习实践
- python爬虫教程书籍-python爬虫有哪些书(python爬虫教程知乎)