获取Android应用程序的解决方案

时间:2018-03-12 14:57:02

标签: android automated-tests

我正在尝试测试应用程序的分辨率。我可以通过以下代码获取屏幕或设备分辨率:Get Screen Height and Width of android device

但是,应用程序的运行分辨率与设备分辨率不同。我如何获得应用程序运行的分辨率,而不是设备屏幕分辨率。

1 个答案:

答案 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之前调用它或视图大小不正确。