计算方法:获取到屏幕的分辨率:point.x和point.y,再取出屏幕的DPI(每英寸的像素数量),计算长和宽有多少英寸,即:point.x / dm.xdpi,point.y / dm.ydpi,屏幕的长和宽算出来了,再用勾股定理,计算出斜角边的长度,即屏幕尺寸。

/*** 得到屏幕的物理尺寸,由于该尺寸是在出厂时,厂商写死的,所以仅供参考* 计算方法:获取到屏幕的分辨率:point.x和point.y,再取出屏幕的DPI(每英寸的像素数量),* 计算长和宽有多少英寸,即:point.x / dm.xdpi,point.y / dm.ydpi,屏幕的长和宽算出来了,* 再用勾股定理,计算出斜角边的长度,即屏幕尺寸。* @param context* @return*/public static double getPhysicsScreenSize(Context context){WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Point point = new Point();manager.getDefaultDisplay().getRealSize(point);DisplayMetrics dm = context.getResources().getDisplayMetrics();int densityDpi = dm.densityDpi;//得到屏幕的密度值,但是该密度值只能作为参考,因为他是固定的几个密度值。double x = Math.pow(point.x / dm.xdpi, 2);//dm.xdpi是屏幕x方向的真实密度值,比上面的densityDpi真实。double y = Math.pow(point.y / dm.ydpi, 2);//dm.xdpi是屏幕y方向的真实密度值,比上面的densityDpi真实。double screenInches = Math.sqrt(x + y);return screenInches;}

注意: 此处displayMetrics不要使用context.getApplicationContext().getResources().getDisplayMetrics()来获取。

上面说到,DPI是由设备出厂时写死到设备里的,如果写入的DPI值不准确,当然计算不出准确的屏幕尺寸。这也是友盟统计里没有屏幕尺寸这一项的原因吧,所以计算出的屏幕尺寸只做参考。

android 获取屏幕的物理尺寸相关推荐

  1. android获取屏幕的物理尺寸

    /** * @ 获取当前手机屏幕尺寸 */ public static float getPingMuSize(Context mContext) {int densityDpi = mContext ...

  2. Android 获取屏幕大小以及尺寸

    在Android开发中,获取手机屏幕像素的方法有多种.在这里,我仅仅做一个小小的总结,将这些方法分为两类.一类是使用Activity类来获取,另一类便是使用上下文(Context)来获取. /*** ...

  3. android获取键盘状态,Android获取屏幕方向及键盘状态的小例子

    Android获取屏幕方向及键盘状态的小例子 复制代码 代码如下: Configuration config = getResources().getConfiguration(); if (conf ...

  4. android获取屏幕尺寸,像素

    public void getScreen(){// 通过Activity类中的getWindowManager()方法获取窗口管理,再调用getDefaultDisplay()方法获 取获取Disp ...

  5. Windows下用Python获取电脑显示器物理尺寸和PPI

    Windows下用Python获取电脑显示器物理尺寸和PPI 背景 PPI 和 DPI Python获取PPI 方法一(WMI) 方法二(WINREG) 方法三(WMI+WINREG) 总结 背景 最 ...

  6. android 获取屏幕的宽高

    今天,讲讲android如何获取屏幕的宽高. // 通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); getWindowManag ...

  7. android获取屏幕像素密度DPI、density、屏幕宽高

    获取手机屏幕像素密度 dpi DisplayMetrics metrics = new DisplayMetrics(); getActivity().getWindowManager().getDe ...

  8. python如何获取图片的尺寸_如何基于Python获取图片的物理尺寸

    如何基于Python获取图片的物理尺寸 这篇文章主要介绍了如何基于Python获取图片的物理尺寸,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题 ...

  9. Android 获取屏幕尺寸与密度

    遇到一个问题,我的地图浮标图片在WVGA手机上正好,在QVGA上就显的太大,所以我要根据屏幕的不同调整浮标的大小使其在QVGA大小合适.有的同事提出了依据分辨率来区分不同的屏幕,但是单WVGA就支持好 ...

最新文章

  1. 适合入门代码审计之熊海cms
  2. .Net深入学习序列化和反序列化 (转)
  3. android刷新时的圆形动画_Android动画篇(一):圆形进度条CircleProgressBar
  4. One2One主键关联的实现
  5. linux开机自动ZFS,linux – 为什么重新启动导致我的ZFS镜像的一面成为UNAVAIL?
  6. 视频识别车牌号(Python)
  7. NOI / 1.3编程基础之算术表达式与顺序执行——12:计算球的体积
  8. Winmerge教程,包括可视化补丁,差异,合并示例
  9. 一个机械研究生在计算机与机械之间的徘徊与思考-(下)之填坑
  10. SEO优化:什么是SEO链轮?站群与博客群的优劣比较!
  11. Wear OS手表应用开发教程之-创建应用
  12. typedef——用法总结
  13. ARTS-第二周(2019.07.08)
  14. esp32c3 crash分析
  15. 计算机信息技术五大变革,信息技术及其影响教学设计
  16. AI扮演Linux虚拟机,能管理文件编程开浏览器,还能跟自己「套娃」聊天 | ChatGPT新玩法...
  17. 计算机毕业设计Java银杏湖景区旅游管理信息平台(源码+系统+mysql数据库+Lw文档)
  18. 深入 delphi (转)
  19. 计算机技术在油气储运工程的应用,浅谈自动化技术在油气储运工程中的应用
  20. sap MM移动类型配置科目问题

热门文章

  1. [MySQL]学生表、教师表、课程表、授课表、成绩表的多表查询案例(1)
  2. fork()函数与vfork()函数的区别
  3. 【tomcat 端口占用启动失败】The Tomcat connector configured to listen on port xx failed to start
  4. Windows优化大师之驱动智能备份
  5. Intel 网卡驱动问题
  6. 如果你的男朋友是学计算机的,有一个学计算机的男朋友是种怎样的体验?
  7. VM虚拟机:找不到文件解决办法
  8. 美国大选这天,我们有个新孩子出生了
  9. 仿iphone输入法_如何在iPhone上的法氏温度和摄氏温度之间切换
  10. 变频器,逆变器工作原理