Я полагаю, вы смешиваете размер экрана с плотностью пикселей:
Из руководства разработчика:
- Платформа поддерживает наборквалификаторы ресурсов, которые позволяют вам предоставлять ресурсы, зависящие от размера и плотности, если это необходимо.Квалификаторы для ресурсов определенного размера:
small
, normal
, large
и xlarge
.Для ресурсов, специфичных для плотности: ldpi
(низкий), mdpi
(средний), hdpi
(высокий) и xhdpi
(сверхвысокий).Спецификаторы соответствуют обобщенным значениям плотности, описанным в Диапазон поддерживаемых экранов , выше. - Платформа также предоставляет элемент манифеста
<supports-screens>
, атрибуты которого android:smallScreens
, android:normalScreens
, android:largeScreens
и android:xlargeScreens
позволяют указать, какие обобщенные размеры экрана поддерживает ваше приложение.Другой атрибут, android: anyDensity, позволяет указать, включает ли ваше приложение встроенную поддержку нескольких плотностей.
Редактировать: добавлены мои комментарии к ответу.
Используя пример из комментария, Archos представляет собой 7-дюймовый экран, в то время как Nexus One имеет 3,7-дюймовый экран. При том же количестве пикселей плотность пикселей на Nexus One удваивается.Помните, что dpi означает количество точек на дюйм. Это означает, что в Archos одно и то же изображение будет в два раза больше, чем в Nexus One .
Различия в размерах экрана должны обрабатываться в макете .Используйте res/layout-normal
для Nexus One и res/layout-large
для Archos.Таким образом, вы будете иметь контроль над полным макетом для разных размеров экрана (возможно, вам нужно ограничить некоторые виджеты, которые будут чрезмерно большими в Archos) и решить, хотите ли вы сохранить фиксированный размер для ваших объектов рисования или расширить их какобязательно.
В качестве альтернативы, если вы действительно хотите сохранить размер, пропорциональный размеру экрана, независимо от размера экрана и без растяжения изображений , то вы можете создать два набора изображений, а именно image1-normal.png, image2-normal.png и image1-large.png, image2-large.png и т. д., как в папках res/drawable-mdpi
, так и res/drawable-hdpi
, к которым можно получить доступ из файлов XML в res/layout-normal
и res/layout-large
.
Таким образом, полные требования должны обрабатываться комбинацией макетов и чертежей:
- Nexus One :
layout-normal
, drawable-hdpi
- Archos 7 :
layout-large
, drawable-mdpi
- Xoom :
layout-xlarge
, drawable-mdpi