首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Android获取屏幕分辨率及DisplayMetrics简介

手机的分辨率信息是手机的一项重要信息,很好的是,Android 已经提供DisplayMetircs 类可以很方便的获取分辨率。...下面简要介绍 DisplayMetics 类: Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。...为了获取DisplayMetrics 成员,首先初始化一个对象如下: DisplayMetrics metrics = new DisplayMetrics(); getWindowManager()...通过 DisplayMetrics的 toString()方法可以获取到 DisplayMetrics的大部分 fields信息,如下是在分辨率为 480×320情况下的一些输出信息: 其中,density...为显示的逻辑分辨率(文档中说了很多,看得不是很明白);width及height就为屏幕分辨率(为绝对宽度与高度),与fields中的widthPixels及heightPixels一致;scaleDensity

3K20

分辨率获取异常-Android更新引发的小坑

看到这个值时我们才恍然大悟,一定是虚拟导航栏的缘故,这个差值的高度刚好吻合虚拟导航栏的高度,回头检查出问题的手机都是启用了虚拟导航栏,导致我们获取到的分辨率与原始标准分辨率不一样了。...那么问题来了,为什么我们会获取到错误的分辨率,而不是手机的一个固定分辨率值呢?...而我们输入法目前仍然使用的是Android4.2之前的方法,详细如下: 我们使用的获取屏幕分辨率的方法是: ? 用这个方法获取到的屏幕分辨率是会被虚拟导航栏吃掉高度的。...经过网上查询了解到Google已经更新了获取分辨率的方法,使用新方法,无论手机虚拟导航栏是否隐藏都可以正确的获取分辨率。 ? 结论及反思: 问题原因找到了,同步给开发更换方法。...通过这个问题,我们不得不进行思考,虚拟导航键会影响屏幕分辨率获取,那么例如近些年增加的横竖屏分屏模式、异形屏、AB屏、大A屏等等影响因素会不会再次导致我们获取错误参数呢?

1.2K10
领券