- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
获取 DisplayMetrics 的正确方法是什么,即获取屏幕/显示信息,例如 density
或 xdpi
?
我问是因为我看到了两种解决方法:
第一:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
然后通过metrics.density
或metrics.xdpi
等获取信息
第二:
getResources().getDisplayMetrics().density
在这种方法中,我相信您也可以只初始化一个变量来保存 DisplayMetric,然后像在 FIRST 方法中一样获取信息:
DisplayMetrics metricsMethodTwo = getResources().getDisplayMetrics()
然后你就可以像平常一样获取信息:metricsMethodTwo.density
或 metricsMethodTwo.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/
我收到错误消息“未定义 LiveWallpaperService 类型的方法 getWindowManager()” 由于我正在创建一个 Activity ,因此无法引用它,我将如何在主类在 onCr
我有一个动画类,当我需要将图像从某个地方移动到另一个时,我从主类调用它...但问题是当我调用它时,它变成了 NullPointerException。这是我的代码: public class Anim
我正在尝试以编程方式获取我的应用程序的可用屏幕区域。为此,我使用了 getWindowManager().getDefaultDisplay().getSize() 。但是我不太确定与这个“默认显示窗
为什么 SAMPLE1 代码工作正常而 SAMPLE2 抛出 NullPointerException?getWindowManager() 只在 onCreate 内工作吗?我可以做些什么来创建一个
我想在我的 MainActivity 中使用 getWindowManager(),但我不想直接在其中编写此方法。 这是我的 MainActivity 代码 public class MainActi
出于某种原因,我想在我的 asynctask 函数中获取用户的电话信息。 这是我的异步任务代码 package com.example.myfirstapp; import java.io.Buffe
我正在尝试在 BroadcastReceiver 中使用 getWindowManager() 并收到此错误: “getWindowManager() 方法未为类型 MyReceiver 定义” 我只
获取 DisplayMetrics 的正确方法是什么,即获取屏幕/显示信息,例如 density 或 xdpi? 我问是因为我看到了两种解决方法: 第一: DisplayMetrics met
我正在设计我的第一个 Android 应用程序,其中一部分需要获取屏幕尺寸。我以标准方式使用 DisplayMetrics 对象: DisplayMetrics metrics = new Displ
我在做这个吧 showing-refreshing-message-in-action-bar 它工作得很好。但是,我想为其设置动画以从顶部向下滑动。 我可以为在布局中创建但不能通过 getWindo
我需要获取窗口的高度和重量。 我的代码中有这个: DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaul
我的屏幕工作方式有问题。我可以通过以下方式获取屏幕的高度: getWindowManager().getDefaultDisplay().getHeight(); // == 800 当我按下屏幕时,
我是一名优秀的程序员,十分优秀!