首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >获取DisplayMetrics的正确方法: getResources()或getWindowManager()

获取DisplayMetrics的正确方法: getResources()或getWindowManager()
EN

Stack Overflow用户
提问于 2011-06-16 19:06:37
回答 1查看 10.1K关注 0票数 19

获取DisplayMetrics的正确方法是什么,例如获取densityxdpi之类的屏幕/显示信息

我之所以这样问,是因为我看到了两种方法:

首先:

代码语言:javascript
运行
AI代码解释
复制
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);

然后通过metrics.densitymetrics.xdpi等方式获取信息

第二:

代码语言:javascript
运行
AI代码解释
复制
    getResources().getDisplayMetrics().density

在这个方法中,我相信你也可以像第一个方法一样初始化一个变量来保存DisplayMetric,然后获取信息:

代码语言:javascript
运行
AI代码解释
复制
    DisplayMetrics metricsMethodTwo = getResources().getDisplayMetrics()

然后你可以得到像normal这样的信息:metricsMethodTwo.densitymetricsMethodTwo.xdpi

我在文档中的不同地方都看到过这两种情况。那么,如果有区别的话,有什么区别,什么时候一种方法比另一种更受欢迎(或更合适),为什么?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-16 20:00:37

代码语言:javascript
运行
AI代码解释
复制
public DisplayMetrics getDisplayMetrics ()

返回对此资源对象有效的当前显示指标。应将返回的对象视为只读对象。

代码语言:javascript
运行
AI代码解释
复制
public void getMetrics (DisplayMetrics outMetrics)

从此显示的data中初始化一个DisplayMetrics object 。

不同之处在于,Resources方法返回的指标是该特定Resources对象的指标。您始终可以使用构造函数创建一个新的Resources实例

代码语言:javascript
运行
AI代码解释
复制
Resources(AssetManager assets, DisplayMetrics metrics, Configuration config)

您可以在其中设置任何您想要的指标,而不一定是您可以从getDefaultDisplay()方法返回的Display实例中获得的指标。

这就是区别所在。但是,如果您只使用默认资源和默认显示,那么在值方面可能没有什么不同。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6377195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档