путаница с drawable-hdpi, drawable-mdpi, drawable-ldpi и drawable

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

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

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

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

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

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

так может кто-нибудь прояснить мне существование папки с возможностью переноса?

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

Спасибо

ИЗМЕНИТЬ

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


person Lukap    schedule 12.01.2012    source источник
comment
На ваш второй вопрос изображение в папке HDPI будет использоваться для устройства MDPI без каких-либо ошибок, но изображение будет выглядеть немного больше, плотнее в пикселях, чем изображение Mdpi (очевидно)   -  person Alok Kulkarni    schedule 12.01.2012


Ответы (5)


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 показан ниже.)

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

person Vineet Shukla    schedule 12.01.2012

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

person Sujit    schedule 12.01.2012
comment
У вас может быть папка с возможностью переноса, чтобы сохранить стиль xmls. - person Lalit Poptani; 12.01.2012

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

person Vinayak Bevinakatti    schedule 12.01.2012
comment
Итак, в соответствии с этим я должен хранить изображения в папке с возможностью переноса, даже если они у меня есть в ldpi, mdpi и hdpi? - person Lukap; 12.01.2012

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

person Prasham    schedule 12.01.2012

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

person Boris Strandjev    schedule 12.01.2012