获取DisplayMetrics的正确方法是什么,即获取屏幕/显示信息,如density或xdpi?
我问,因为我已经看到了两种方法:
第一:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Run Code Online (Sandbox Code Playgroud)
然后通过metrics.density或获取信息metrics.xdpi等
第二:
getResources().getDisplayMetrics().density
Run Code Online (Sandbox Code Playgroud)
在这个方法中,我相信你也可以初始化一个变量来保存DisplayMetric,然后像FIRST方法一样获取信息:
DisplayMetrics metricsMethodTwo = getResources().getDisplayMetrics()
Run Code Online (Sandbox Code Playgroud)
然后你可以得到正常的信息:metricsMethodTwo.density或metricsMethodTwo.xdpi
我在Docs的各个地方都见过.那么有什么区别,如果有的话,何时一种方法比另一方更受青睐(或更合适)?为什么?谢谢
Ale*_*dam 17
public DisplayMetrics getDisplayMetrics ()
Run Code Online (Sandbox Code Playgroud)
返回对此资源对象有效的当前显示指标.返回的对象应视为只读.
public void getMetrics (DisplayMetrics outMetrics)
Run Code Online (Sandbox Code Playgroud)
从此显示的数据初始化DisplayMetrics对象.
不同之处在于Resources方法返回的度量标准是该特定Resources对象的度量标准.您始终可以Resources使用构造函数创建新实例
Resources(AssetManager assets, DisplayMetrics metrics, Configuration config)
Run Code Online (Sandbox Code Playgroud)
您可以在其中设置所需的任何指标,而不一定是您可以从Display方法返回的实例中获取的指标getDefaultDisplay().
这就是区别.如果您仅使用默认资源和默认显示,则值可能没有区别.
| 归档时间: |
|
| 查看次数: |
9584 次 |
| 最近记录: |