понедельник, 19 сентября 2011 г.

Как программно узнать разрешение экрана. Android

Вот несколько способов как это сделать:

DisplayMetrics - A structure describing general information about a display, such as its size, density, and font scaling.
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Log.d("Resolution", "resolution: "+metrics.widthPixels+" x "+ metrics.heightPixels);

И с помощью Display
Display display = getWindowManager().getDefaultDisplay();
Log.d("Resolution""resolution: "+display.getWidth()+" x "+ display.getHeight());

9 комментариев:

  1. а какую библиотеку заюзали? =( так не люблю когда такую важную часть упускают

    ОтветитьУдалить
  2. Спасибо за решение. А на сколько оно актуально и не является ли устаревшим?

    ОтветитьУдалить
    Ответы
    1. Работает на всех Android-устройствах. с API Level 1

      Удалить
  3. Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
    int width = display.getWidth();
    int height = display.getHeight();

    ОтветитьУдалить
  4. А можно ли как-то узнать размеры элементов на layout`e?

    ОтветитьУдалить
  5. Можно, если использовать custom view. На методах onSizeChanged и onMeasure.

    Но зачем?

    ОтветитьУдалить
  6. Вызовы методов getWidth(), getHeight() класса Display у моем проэкте (цэльовой API - 8) помечает как устаревшие.
    А вот первый способ с использованием DisplayMetrix вполне рабочий.

    ОтветитьУдалить