Подтвердить что ты не робот

Drawable vs. drawable-ldpi/drawable-mdpi

Во всех документах Android упоминается каталог "drawable". Однако, когда я создаю проект Android в Eclipse, он не создает каталог "/res/drawable", но он создает "/res/drawable-ldpi" и "/res/drawable-mdpi". Я полагаю, что они имеют какое-то отношение к разрешению пикселей, но что именно происходит здесь? Когда я прошел через учебники, я вручную создал "drawable" каталог и поместил туда свои ресурсы, но мне нужно было? Имеются ли ссылки на работу "/res/drawable/", если присутствуют только "drawable- {l | m} dpi?

4b9b3361

Ответ 2

Да, вам нужно создать каталог по умолчанию /res/drawable в Eclipse.

Если вы хотите использовать папки -hdpi/-mdpi/-ldpi, вам нужно сделать отдельные макеты xml, чтобы ссылаться на них.

http://developer.android.com/guide/practices/screens_support.html

Ответ 3

Я предполагаю, что это имеет какое-то отношение к тому, как вы создали проект Android. Обычно моя создает папку hdpi, mdpi и ldpi. В принципе, "drawable" является значением по умолчанию. Если у вас есть все ваши ресурсы в папке hdpi и попробуйте запустить его на устройстве ldpi, я считаю, что вы получите какое-то исключение (я не проверял это, но я считаю, что это так). Подробное объяснение того, что происходит без ресурсов по умолчанию, объясняется здесь.

Вы должны хранить коллекцию ресурсов по умолчанию в основной папке "drawable" (да, возможно, вам придется создавать вручную), чтобы быть в безопасности, и обеспечить совместимость со старыми версиями Android. Android сначала проверит конкретные папки плотности, но вернется к папке с возможностью изменения по умолчанию, если она не сможет найти этот конкретный ресурс в этой плотности.

Ответ 4

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

Если вы дублируете и изменяете размер графических ресурсов для всех шести папок плотности, созданных по умолчанию, от drawable-ldpi до drawable-xxxhdpi, размер вашего приложения будет раздуваться для приложения с тяжелой графикой, не говоря уже о других проблемах, возникающих как сбой в размере кучи (они должны предоставлять разные папки для разных размеров кучи устройства).

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

Ответ 5

В этом ответе @RomainGuy упомянул, что вы должны сохранять соответствующие изображения в своих соответствующих папках (mdpi, xhdpi) и других источниках, таких как .xml файлы для чертежей в вашей папке drawable.

Например, если вы будете использовать устройство hdpi, в то время как вы не помещаете какое-либо изображение в папку hdpi, оно не будет разбиваться; он вместо этого изменит размер изображения из следующей подходящей папки (т.е. mdpi) и расширит изображение.

Ответ 6

В Android 1.6 были добавлены квалификаторы Hdpi, mdpi и ldpi. Если вы собираетесь поддерживать Android 1.5, вы должны поместить все выходы с вкладкой medium-dpi в каталог по умолчанию.

Вы можете прочитать об этом здесь.