Размеры экрана и макеты - PullRequest
3 голосов
/ 15 марта 2011

В настоящее время я застрял в том, что может быть проблемой с пониманием документов.

Я читал документы о поддержке нескольких экранов , и у меня есть некоторые проблемы специальнос различиями в лайтойтах между HTC Desire и HTC Legend .

Насколько я понимаю, если посмотреть на матрицу экранов в документах для разработчиков, Legend - это 'обычный экран и Desire - большой экран.

Добавление каталогов макетов layout /, layout-small / и layout-large решило мои проблемы с устройствами с маленьким экраном.Но теперь, когда пытаемся сделать приложение хорошо выглядящим как в Desire, так и в Legend, кажется, что они оба используют нормальную компоновку экрана.

Есть какие-либо подсказки, решения или объяснения?

Ответы [ 3 ]

2 голосов
/ 15 марта 2011

HTC Desire - чей экран 480x800 WVGA800 - считается нормальным screen-hdpi, а HTC Legend - чей экран 320 X 480 HVGA - считается нормальным screen-mdpi (см. Таблицу 1 ). Таким образом, для обоих устройств используется нормальная компоновка экрана и графика mdpi, но, поскольку у Desire есть экран hdpi, Android масштабирует графику (обычно результат выглядит размытым). Чтобы макет выглядел хорошо на Desire, вы должны предоставить графику hdpi и поместить ее в папку с именем drawable-hdpi.

0 голосов
/ 15 марта 2011

Попробуйте использовать wrap_content, fill_parent или модуль dp в вашей обычной раскладке. В любом случае создание нескольких макетов, как вы делаете, является утомительным, но, возможно, лучшим вариантом. Установите это в своем манифесте

  <supports-screens 
    android:largeScreens="true" 
    android:smallScreens="true" 
    android:normalScreens="true" 
 />

и получите размер используемого экрана с

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
Log.e("FirstImage", "Width = "+width+"Height = "+height);

Как только у вас будет размер экрана, я думаю, вы знаете, как назначить ему определенный предопределенный (вами) макет.

Надеюсь, это поможет, если у вас все еще есть проблема, прокомментируйте ниже, и мы увидим, как ее решить!

0 голосов
/ 15 марта 2011

В макетах я использую веса макетов, чтобы указать размеры.Это в значительной степени поможет при запуске приложения на различных устройствах экрана.

Проверьте здесь layout_weights,
http://mobiforge.com/designing/story/understanding-user-interface-android-part-1-layouts

...