我正在尝试向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
?
谢谢!!
1条答案
按热度按时间ykejflvf1#
这就是如何显示屏幕的高度和宽度