我正在尝试测试应用程序的分辨率。我可以通过以下代码获取屏幕或设备分辨率:Get Screen Height and Width of android device
但是,应用程序的运行分辨率与设备分辨率不同。我如何获得应用程序运行的分辨率,而不是设备屏幕分辨率。
答案 0 :(得分:0)
虽然我可能无法完全理解您的问题,但我认为这与您所寻找的一致。这将获得当前视图并测量高度和宽度。如果您正在进行自动化测试,那么我认为ViewTreeObserver
是
比使用View
更安全,这就是我包含ViewTreeObserver
的原因。我很确定这将返回当前视图的宽度和高度,这将与屏幕分辨率不同。
ViewTreeObserver viewTreeObserver = YOUR_VIEW_TO_MEASURE.getViewTreeObserver();
if (viewTreeObserver.isAlive()) {
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
YOUR_VIEW_TO_MEASURE.getViewTreeObserver().removeOnGlobalLayoutListener(this);
int viewHeight = YOUR_VIEW_TO_MEASURE.getHeight();
int viewWeight = YOUR_VIEW_TO_MEASURE.getWidth();
}
});
}
如果要将其与设备的当前分辨率进行比较,而不是视图,则看起来您已经在问题中找到并链接了正确的解决方案。
注意:如果您正在测试您的程序,请确保在创建视图后调用此程序,因为如果在它可能返回0
之前调用它或视图大小不正确。