Несколько экранов для HTC Desire и HTC Sensation

Я хочу сделать разные макеты для моделей Sensation и Desire.

Я читал о программировании для нескольких экранов и предоставлении ресурсов для разных размеров экрана и плотности, но это ощущение разрешения сводит меня с ума. У меня есть раскладка, которая отлично работает на HTC Desire; они размещены в макете, а рисунки размещены в формате hdpi. Все работает отлично. Проблема возникает, когда я пытаюсь запустить приложение на Sensation, все неуместно и выглядит очень некрасиво.

У меня вопрос, где разместить макеты Sensation? Какое имя квалификатора следует использовать для Sensation?


person Lukap    schedule 06.09.2011    source источник


Ответы (1)


Попробуйте найти разрешение и плотность устройства (Sensation), используя следующий код.

    Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics dm = new DisplayMetrics();
    display.getMetrics(dm);

    int width = display.getWidth();
    int height = display.getHeight();
    int density = dm.densityDpi;
    String densityString = null;

    if(density == DisplayMetrics.DENSITY_HIGH) {
        densityString = "HDPI";
    } else if(density == DisplayMetrics.DENSITY_MEDIUM) {
        densityString = "MDPI";
    } else if(density == DisplayMetrics.DENSITY_LOW) {
        densityString = "LDPI";
    }

Затем используйте соответствующие квалификаторы имени ресурса для папок drawable и layout, как в Поддержка нескольких экранов. (например) drawable-large-hdpi, layout-large-hdpi

Это не всегда возможно, так как у вас не будет доступа ко всем устройствам. Поэтому лучше создавать AVD с различными конфигурациями отображения на основе таблицы, приведенной в разделе Как протестировать приложение на нескольких экранах по приведенной выше ссылке.

person Ragunath Jawahar    schedule 15.09.2011
comment
проблема в том, что и у htc желание, и у ощущения есть layout-large-hdpi - person Lukap; 15.09.2011
comment
Я выгляжу точно так же. Но дело в том, что я не хочу этого делать! Я хочу иметь разные макеты, потому что размеры экранов разные, но они оба относятся к одной (большой) категории. Желание иметь разрешение 480x800 разрешение 540x960 - person Lukap; 15.09.2011
comment
если вы найдете ответ, пожалуйста, дайте мне знать, потому что я действительно ломаю голову над этим - person Lukap; 15.09.2011