Как получать размеры экрана в Android?

Я пробую получать размеры экрана устройства Android, пробую с этим кодом:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();  // obsoleto (deprecated)
int height = display.getHeight();  // obsoleto (deprecated)

Который находит устаревший (deprecado): Каковым был бы настоящий правильный способ получать размеры экрана устройства?

13
задан 17.12.2015, 19:26
4 ответа

Ты можешь использовать DisplayMetrics

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels; // ancho absoluto en pixels 
int height = metrics.heightPixels; // alto absoluto en pixels 

Nota: Эта форма вынесена с API Level 1

8
ответ дан 24.11.2019, 15:05
  • 1
    getWindowManager().getDefaultDisplay().getMetrics(metrics); ты это не распределяешь ни во что? или что делает эту линию? –  HCarrasko 17.12.2015, 15:35
  • 2
    getMetrics (metrics) наполняет переменная metrics с данными, поэтому создается объект DisplayMetrics заблаговременно. –  rnrneverdies 17.12.2015, 15:37

Правильное для получать размеры экрана в Android и смогло функционировать правильно во всех APIs serГ - в:

Display display = getWindowManager().getDefaultDisplay();    
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB_MR1) {  // > API 12
        Point size = new Point();
        display.getSize(size);
        width = size.x;
        height = size.y;
    } else {
        width   = display.getWidth();
        height  = display.getHeight();
    }

Другая форма serГ - в используя:

DisplayMetrics Структура, что описывает ее informaciГіn генерал на экране, таких как Ваш tamaГ±o, сосредоточенность и масштаб шрифтов.

, Чтобы соглашаться на членов DisplayMetrics, инициализировать объект как Г©ste:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
  • Другая форма serГ - в:

    int widthPixels = getResources().getDisplayMetrics().widthPixels;
    int heightPixels = getResources().getDisplayMetrics().heightPixels;
    
3
ответ дан 24.11.2019, 15:05
  • 1
    Exelente внес Хорхе, каждый раз, когда я ищу вещи твои комментарии exelencia –  Bruno Sosa Fast Tag 15.01.2018, 14:56

Ты можешь делать это этой формой:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

, Хотя старая форма continГєa функционируя правильно.

2
ответ дан 24.11.2019, 15:05

Ты можешь пробовать также, используя метод getResources автоматическим способом, не импортируя новых классов

int width = this.getResources().getConfiguration().screenWidthDp;

int height = this.getResources().getConfiguration().screenHeightDp;
1
ответ дан 24.11.2019, 15:05