获取DisplayMetrics的正确方法是什么,例如获取density
或xdpi
之类的屏幕/显示信息
我之所以这样问,是因为我看到了两种方法:
首先:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
然后通过metrics.density
或metrics.xdpi
等方式获取信息
第二:
getResources().getDisplayMetrics().density
在这个方法中,我相信你也可以像第一个方法一样初始化一个变量来保存DisplayMetric,然后获取信息:
DisplayMetrics metricsMethodTwo = getResources().getDisplayMetrics()
然后你可以得到像normal这样的信息:metricsMethodTwo.density
或metricsMethodTwo.xdpi
我在文档中的不同地方都看到过这两种情况。那么,如果有区别的话,有什么区别,什么时候一种方法比另一种更受欢迎(或更合适),为什么?谢谢
发布于 2011-06-16 20:00:37
public DisplayMetrics getDisplayMetrics ()
返回对此资源对象有效的当前显示指标。应将返回的对象视为只读对象。
public void getMetrics (DisplayMetrics outMetrics)
从此显示的data中初始化一个DisplayMetrics object 。
不同之处在于,Resources
方法返回的指标是该特定Resources
对象的指标。您始终可以使用构造函数创建一个新的Resources
实例
Resources(AssetManager assets, DisplayMetrics metrics, Configuration config)
您可以在其中设置任何您想要的指标,而不一定是您可以从getDefaultDisplay()
方法返回的Display
实例中获得的指标。
这就是区别所在。但是,如果您只使用默认资源和默认显示,那么在值方面可能没有什么不同。
https://stackoverflow.com/questions/6377195
复制相似问题