Android 获取DisplayMetrics的正确方法:getResources()或getWindowManager()
获取DisplayMetrics的正确方法是什么,即获取屏幕/显示信息,如Android 获取DisplayMetrics的正确方法:getResources()或getWindowManager(),android,Android,获取DisplayMetrics的正确方法是什么,即获取屏幕/显示信息,如密度或xdpi 我这样问是因为我看到了两种方法: 第一: DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); 然后通过metrics.density或metrics.xdpi等获取信息 第二: getResources().getDisp
密度
或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
我在文档的不同地方都看到过。那么,如果有的话,区别是什么?什么时候一种方法比另一种更受欢迎(或更合适),为什么?谢谢
public DisplayMetrics getDisplayMetrics ()
返回对该资源对象有效的当前显示度量值。返回的对象应被视为只读对象
从此显示器的数据初始化DisplayMetrics对象
不同之处在于,Resources
方法返回的度量是该特定Resources
对象的度量。您始终可以使用构造函数创建一个新的Resources
实例
Resources(AssetManager assets, DisplayMetrics metrics, Configuration config)
您可以在其中设置所需的任何度量,而不一定是从方法getDefaultDisplay()
返回的Display
实例中获得的度量
这就是区别。如果您只使用默认资源和默认显示,则值可能不会有什么不同。谢谢!不过,我仍在尝试想象您何时会创建自己的
资源。有没有一个你什么时候会这样做或者为什么会这样做的例子?(即,两种方法的实际值何时会不同?)
Resources(AssetManager assets, DisplayMetrics metrics, Configuration config)