Если вы хотите размеры экрана в пикселях, вы можете использовать getSize
:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Если вы не в Activity
, вы можете получить значение по умолчанию Display
через WINDOW_SERVICE
:
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Если вы во фрагменте и хотите выполнить это, просто используйте Activity.WindowManager (в Xamarin.Android) или getActivity (). GetWindowManager () (в java).
До введения getSize
(на уровне API 13) вы могли использовать методы getWidth
и getHeight
, которые сейчас не рекомендуются:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth(); // deprecated
int height = display.getHeight(); // deprecated
Однако для описываемого вами варианта использования поле / отступ в макете кажется более подходящим.
Другой способ: DisplayMetrics
Структура, описывающая общую информацию об дисплее, такую как его размер, плотность и масштабирование шрифта. Чтобы получить доступ к членам DisplayMetrics, инициализируйте объект следующим образом:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Мы можем использовать widthPixels
, чтобы получить информацию для:
"Абсолютная ширина дисплея в пикселях."
Пример:
Log.d("ApplicationTagName", "Display width in px is " + metrics.widthPixels);