путаница с drawable-hdpi, drawable-mdpi, drawable-ldpi и drawable - PullRequest
3 голосов
/ 12 января 2012

Я нахожусь на одном действительно большом проекте, который был запущен во времена Android 1.5.

Этот проект развивался по мере развития Android и на данный момент поддерживает 2.3 и выше.

Теперь яу меня есть эта проблема, у меня есть много drawables в drawable-hdpi, drawable-mdpi, drawable-ldpi, а также в папке drawable.

Вообще концепция этих 3 папок (drawable-hdpi, drawable-mdpi, drawable-ldpi) мне понятно, но моя путаница связана с изображениями в папке drawable.

например, у меня есть изображение с именем myimage.png, и это изображение присутствует в drawable-hdpi, drawable-mdpi, drawable-ldpi папки с разрешением 72x72,48x48,36x36 соответственно, но это изображение также присутствует в папке для рисования.

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

, поэтому кто-то может объяснить мне существование папки для рисования?

Я знаю, что если у меня нетпапки dhpi, mdpi и ldpi, тогда мне нужно поместить изображения в рисование, но какой смысл изображения в рисовании, когда присутствуют эти 3 папки?

Спасибо

РЕДАКТИРОВАТЬ

еще один вопрос, что если у меня есть изображение в drawable-hdpi, но не в ldpi и не в i mdpi.Допустим, у нас есть телефон с плотностью разрешения mdpi ... Что будет?

Ответы [ 5 ]

3 голосов
/ 12 января 2012

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

Например, представьте, что у вас есть значок приложения icon.png, и вам нужна уникальная версия для разных локалей.Тем не менее, два языка, английский-канадский и французско-канадский, должны использовать одну и ту же версию.Вы можете предположить, что вам нужно скопировать одно и то же изображение в каталог ресурсов для англо-канадского и франко-канадского языков, но это не так.Вместо этого вы можете сохранить изображение, которое используется для обоих, как icon_ca.png (любое имя, отличное от icon.png) и поместить его в каталог res / drawable / по умолчанию.Затем создайте файл icon.xml в res / drawable-en-rCA / и res / drawable-fr-rCA /, который ссылается на ресурс icon_ca.png с помощью элемента.Это позволяет хранить только одну версию PNG-файла и два небольших XML-файла, которые указывают на него.(Пример XML-файла показан ниже.)

Пожалуйста, для большей ясности просмотрите эту ссылку .

0 голосов
/ 12 января 2012

Я думаю, эта страница должна помочь вам лучше понять. Спасибо за вопрос. Я сам не знал ответа. Обычно у вас есть 4 разные версии, и если не существует точно совпадающей версии, используется версия по умолчанию (без квалификатора).

0 голосов
/ 12 января 2012

Речь идет не о плотностях, есть и другие классификаторы, хотя в большинстве случаев мы их не используем много. Для списка квалификаторов проверьте здесь и здесь . Вы можете использовать -finger -language ... и т.д. В случае, если вы хотите предоставить квалификатор ресурсов по умолчанию [в данном случае рисуемый], вы можете выбрать папку по умолчанию для рисования. Или много папок по умолчанию без квалификаторов, добавленных за ними

0 голосов
/ 12 января 2012

Как я уже сталкивался при запуске приложения на Android 1.5 и 2.0, если изображения, используемые в любом макете, недоступны в папке «drawable», тогда проект выдает ошибку «Resource not found», даже если изображение присутствуетв другой папке hdpi, mdpi или ldpi.

0 голосов
/ 12 января 2012

AFAIK вам не нужна папка для рисования, если у вас есть все три типа папок (drawable-hdpi, drawable-mdpi, drawable-ldpi) с изображениями с разным разрешением.

...