如何在androidstudio中显示屏幕大小(简单的方法)?

7rfyedvj  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(469)

我正在尝试向logcat显示屏幕宽度和高度。
我看到过这个堆栈溢出帖子:在api级别30(android 11)上获取屏幕宽度:getdefaultdisplay()和getmetrics()现在被弃用了。我们应该用什么来代替?
但对于像我这样的新手来说,公认的解决方案是令人困惑和复杂的 DisplayMetrics 以及 Display 在安卓工作室。
目前,我知道如何做到这一点:

public class ScreenUtility {
    private Activity activity;
    private Float dpHeight, dpWidth;

    public ScreenUtility(Activity activity) {
        this.activity = activity;

        Display display = activity.getWindowManager().getDefaultDisplay();
        DisplayMetrics displayMetrics = new DisplayMetrics();

        display.getMetrics(displayMetrics);
        float density = activity.getResources().getDisplayMetrics().density;

        dpHeight = displayMetrics.heightPixels / density;
        dpHeight = displayMetrics.widthPixels / density;

    }

    public Float getDpHeight() {
        return dpHeight;
    }

    public Float getDpWidth() {
        return dpWidth;
    }
}

然而, .getMetrics 已弃用。结果,代码返回宽度和高度作为 null .
(我正在看一个关于这些概念的老视频)有没有什么方法可以让我改变这个代码,调整我的知识以适应现代的编程方法 Display 以及 DisplayMetrics ?
你怎么样 DisplayMetrics 以及 Display 与众不同?在文档中,它将它们描述为两种提供显示大小的工具。或者是 DisplayMetrics 用作的参数 Display ?
谢谢!!

ykejflvf

ykejflvf1#

这就是如何显示屏幕的高度和宽度

try{
    DisplayMetrics displayMetrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
            int height = displayMetrics.heightPixels;
            int width = displayMetrics.widthPixels;

    Log.e("test","Height : " + height + " width : " + width);
}
catch(Exception e){
Log.e("test","exception : " + e.toString());
}

相关问题