Компоновка виджетов для 960x540 и 854x480 - PullRequest
1 голос
/ 04 октября 2011

Оба этих размера извлекаются из одной папки макета. Итак ... Мне интересно, как я могу создать виджет, который выглядит хорошо на обоих? Я приложил снимки экрана, чтобы показать 2 дисплея, которые используют одни и те же ресурсы.

960 x 540 Display 240 dpi

854 x 480 Display 240 dpi

Есть идеи?

1 Ответ

3 голосов
/ 04 октября 2011
Both of these sizes pull from the same layout folder.

В Android макет был выбран на основе плотности устройств. Различная конфигурация экрана , например:

(ldpi) экранов (~ 120 точек на дюйм).

(мдпи) экранов (~ 160 т / д).

(hdpi) экранов (~ 240 точек на дюйм).

(xhdpi) экранов (~ 320 точек на дюйм).

Оба 960x540 и 854x480 попадают в макет hdpi , поэтому вы получаете одинаковый макет для обоих.

Чтобы решить эту проблему, для получения подходящего пользовательского интерфейса для обеих спецификаций создайте отдельный XML для обоих внутри макет hdpi ,например: 960_540.xml и 854_480.xml

В поле «Активность» проверьте размер экрана устройства, чтобы установить соответствующий ContentView

. Размер экрана можно получить с помощью Показывать метрики нижеКод:

    Display display = getWindowManager().getDefaultDisplay(); 
    screenWidth = display.getWidth(); 
    screenHeight = display.getHeight();
    dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    String str_ScreenSize = dm.widthPixels + " x " + dm.heightPixels;
    str_ScreenSize = "dd" + " x " + dm.heightPixels;

    if(screenHeight==854 & screenwidth==480){
        setContentView(R.layout.854_480);
    }
    else if(screenHeight==960 && screenwidth==540){
        setContentView(R.layout.960_540);
    }
...