2010-09-14 3 views
5

Мне кажется, что я чего-то не хватает.Android-предоставление альтернативных ресурсов не работает?

В моем приложении я решил предоставить альтернативные ресурсы и альтернативные файлы макета. Моя структура выглядит следующим образом:

разреша/вытяжка-ИПЧР/filename.png
разреш/вытяжка-MDPI/filename.png
разреш/вытяжка-ldpi/filename.png

разрешения/макет-малые /layout.xml
разрешения/макета большой/layout.xml
Рез/макет/layout.xml

Я создал три разных эмуляторов: один с HVGA по умолчанию, один с разрешением QVGA, и один с WVGA800

Кажется, что они не забирают эти альтернативные ресурсы/макеты на основе размера экрана/плотности, или, может быть, я просто не могу сказать?

Есть ли способ, за исключением использования устройства для каждого конкретного размера, чтобы проверить это? Или я просто пропустил что-то важное?

Еще один вопрос: насколько хорошо работает Android-шкала, если альтернативный ресурс отсутствует?

ответ

1

Несколько пунктов, в произвольном порядке:

  • Расположение связаны с размером экрана и, следовательно, до большого, среднего, малого и вводимого коэффициента связаны с плотностью и, таким образом, чтобы ИПЧР, MDPI, ldpi. Это очевидно для некоторых и не так легко понять другим.
  • Прочитайте до this и создайте устройства эмулятора, указанные на этой странице, дважды проверьте, чтобы вы получили их правильно.
  • Теперь начните с простой компоновки и протестируйте ее на скине устройства по умолчанию, затем добавьте макет 320x480, проверьте, повторите ли вы для других размеров. Если вы используете layout-large/small и т. Д., Не забудьте добавить правильные строки в AndroidManifest.xml <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizable="true" android:anyDensity="true" />
  • Один простой способ сделать это - создать папку layout.xml и drawables по умолчанию, а для разных размеров - 320x480.xml и т. Д., У нас есть папки с рисунками-hdpi и т. Д. Если вы установите android:anyDensity="false" /> в файл манифеста, тогда телефон получит правильные макеты и активы в зависимости от его атрибутов.

Если вы установили android:anyDensity="false" /> в файл манифеста, то телефон обрабатывает размер чертежей, обычно беря активы из папки с возможностью переноса и изменяя размер.

+0

Хорошие точки. Просто отметим, что согласно [docs] (http://developer.android.com/guide/topics/manifest/supports-screens-element.html) 'android: resizable' не должен использоваться в манифесте. –

1

В 3.2 выше версии для разработчиков Android были выпущены две новые вещи для планшетов

layout-sw600dp-land 
layout-sw720-land