Как определить размер экрана категории устройства (маленький, нормальный, большой, большой), используя код? - PullRequest
303 голосов
/ 16 февраля 2011

Есть ли способ определить категорию размера экрана текущего устройства, например маленький, нормальный, большой, большой?

Не плотность, а размер экрана.

Ответы [ 12 ]

1 голос
/ 08 ноября 2013

Не могли бы вы сделать это, используя строковый ресурс и перечисления?Вы можете определить строковый ресурс с именем размера экрана, например SMALL, MEDIUM или LARGE.Затем вы можете использовать значение строкового ресурса для создания экземпляра перечисления.

  1. Определите Enum в своем коде для разных размеров экрана, которые вас интересуют.

    public Enum ScreenSize {
        SMALL,
        MEDIUM,
        LARGE,;
    }
    
  2. Определите строковый ресурс, скажем, screenize, значение которого будет SMALL, MEDIUM или LARGE.

    <string name="screensize">MEDIUM</string>
    
  3. Поместите копию screensize в строковый ресурс в каждом измерении, которое вас волнует.
    Например, <string name="screensize">MEDIUM</string> будет идти в values-sw600dp / strings.xml иЗначения medium / strings.xml и <string name="screensize">LARGE</string> будут идти в sw720dp / strings.xml, а values-large / strings.xml.
  4. В коде писать
    ScreenSize size = ScreenSize.valueOf(getReources().getString(R.string.screensize);
0 голосов
/ 15 мая 2018

Попробуйте эту функцию isLayoutSizeAtLeast (int screenSize)

Чтобы проверить маленький экран, по крайней мере 320x426 dp и выше getResources (). GetConfiguration() .isLayoutSizeAtLeast (Configuration.

Чтобы проверить большой экран, по крайней мере 480x640 dp и выше getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_LARGE);

Чтобы проверить очень большой экран, по крайней мере720x960 dp и выше getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_XLARGE);

...