gpt4 book ai didi

android - 获取 DisplayMetrics : getResources() or getWindowManager() 的正确方法

转载 作者:IT老高 更新时间:2023-10-28 23:11:48 31 4
gpt4 key购买 nike

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

我问是因为我看到了两种解决方法:

第一:

    DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

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

第二:

    getResources().getDisplayMetrics().density

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

    DisplayMetrics metricsMethodTwo = getResources().getDisplayMetrics()

然后你就可以像平常一样获取信息:metricsMethodTwo.densitymetricsMethodTwo.xdpi

我在 Docs 的各个地方都见过这两种情况。那么如果有的话有什么区别,什么时候一种方法比另一种更受欢迎(或更合适),为什么?谢谢

最佳答案

public DisplayMetrics getDisplayMetrics ()

Return the current display metrics that are in effect for this resource object. The returned object should be treated as read-only.

public void getMetrics (DisplayMetrics outMetrics)

Initialize a DisplayMetrics object from this display's data.

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

Resources(AssetManager assets, DisplayMetrics metrics, Configuration config)

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

这就是区别。如果您仅使用默认资源和默认显示,则值可能不会有所不同。

关于android - 获取 DisplayMetrics : getResources() or getWindowManager() 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6377195/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com