问题描述
我正在尝试向 logcat 显示屏幕宽度和高度。
但对于像我这样刚接触 Android Studio 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
的参数?
谢谢!!
解决方法
这是你如何显示屏幕的高度和宽度
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());
}