Android выбирает неверную папку ресурсов - PullRequest
3 голосов
/ 23 сентября 2010

У меня возникли проблемы с папкой ресурсов - Android выбирает неправильную папку ресурсов.

В режиме разработки в редакторе макетов у меня есть возможность выбирать между различными устройствами, чтобы посмотреть на мой дизайн в разных разрешениях экрана. Я указал три разных устройства, по одному для каждого разрешения. Mdpi и hdpi показывают ресурсы из нужной папки, но при выборе моего устройства с помощью ldpi он показывает ресурсы из mdpi - что неправильно.

Настройки для устройства ldpi:

Маленький, Не длинный, Портрет, Низкая плотность, Палец, Мягкий, Без клавиш, Трекбол, 320x240

Когда я запускаю программу, я получаю InflateException, потому что она не может найти подходящие ресурсы для моего изображения в моем макете: android: src = "@ drawable / psbgtop"

Это моя папка res:

  • Рез / вытяжка-ИПЧР / icon.png
  • Рез / вытяжка-ИПЧР / psbgbottom.png
  • Рез / вытяжка-ИПЧР / psbgtop.png
  • Рез / вытяжка-ldpi / icon.png
  • Рез / вытяжка-ldpi / psbgbottom.png
  • Рез / вытяжка-ldpi / psbgtop.png
  • Рез / вытяжка-MDPI / icon.png
  • Рез / вытяжка-MDPI / psbgbottom.png
  • Рез / вытяжка-MDPI / psbgtop.png
  • Рез / макет / main.xml
  • Рез / макет / settings.xml
  • Рез / макет / settings2.xml
  • Рез / макет / synchronize.xml
  • Рез / значения / strings.xml
  • Рез / XML / preferences.xml

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

С наилучшими пожеланиями Frederik

Ответы [ 3 ]

1 голос
/ 26 сентября 2010

Вы можете использовать "aapt dump restable", чтобы посмотреть на реальные ресурсы в вашем .apk.Нет необходимости иметь базовый ресурс при использовании ресурсов плотности.Здесь недостаточно информации, чтобы помочь гораздо большему, но я думаю, что ваш код и ресурсы не синхронизированы.Вы пытались сделать полную чистую сборку?

0 голосов
/ 26 сентября 2010

Я думаю, что причина того, что вы получаете ошибку времени выполнения, заключается в том, что вы тестируете / компилируете ее для Android SDK 1.5.

Если вы стремитесь к совместимости 1.5, вам также понадобится папка «drawable» по умолчанию, поскольку в официальной документации режимы ldpi, mdpi, hdpi и nodpi были добавлены с API Level 4 (Android 1.6).

http://developer.android.com/guide/topics/resources/providing-resources.html

ldpi: Low-density screens; approximately 120dpi.
mdpi: Medium-density (on traditional HVGA) screens; approximately 160dpi.
hdpi: High-density screens; approximately 240dpi.
nodpi: This can be used for bitmap resources that you do not want to be scaled to match the device density.

Added in API Level 4.

Редактировать: Если бы я был вами, я бы просто переименовал папку drawable-ldpi в папку drawable и сохранил файлы ldpi в drawable

0 голосов
/ 23 сентября 2010

Хорошей идеей будет иметь «базовую» папку (называемую «отрисовываемой» в вашем конкретном случае) и помещать туда некоторые «стандартные» ресурсы, чтобы у Android было что-то, к чему можно вернуться, если он не находит нужные ресурсы. Но в целом это действительно выглядит странно, почему ни один из dpi-специфичных ресурсов не был выбран.

...