Как вы можете отобразить размер экрана в Android Studio(простой способ)?
Я пытаюсь отобразить ширину и высоту экрана в logcat.
Я видел это сообщение о переполнении стека: Получение ширины экрана на уровне API 30 (Android 11): getDefaultDisplay () и getMetrics () теперь устарели. Что мы должны использовать вместо этого?
Но принятое решение сбивает с толку и сложно для кого-то вроде меня, новичка в Android Studio.
В настоящее время я знаю, как это сделать:
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
.
(Я смотрю более старое видео по этим концепциям) Есть ли способ изменить этот код и скорректировать свои знания в соответствии с современными методами и?
Как бывают и разные? В документации они описываются как оба инструмента, обеспечивающие размер дисплея. Или это
DisplayMetrics
используется как параметр дляDisplay
?
Спасибо!!
2 ответа
Вот как вы можете отображать высоту и ширину экрана
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());
}
val windowMetrics = requireActivity().windowManager.currentWindowMetrics
val displayMetrics = resources.displayMetrics
val pxHeight = windowMetrics.bounds.height()
val pxWidth = windowMetrics.bounds.width()
val density = displayMetrics.density
val dpHeight = pxHeight/density
val dpWidth = pxWidth/density