Доступные папки в папке res?

В чем разница между тремя доступными папками в папке res в иерархии проекта? Если у меня есть изображение, чтобы положить в папку, в какую папку я ее вставляю?

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

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

Вот ссылка на опции нескольких устройств .

Как сказал @CommonsWare, вам не нужно размещать ресурсы ни в чем, кроме res / layout / или drawable /, но если вы хотите, чтобы ваша программа имела лучший опыт работы на нескольких устройствах с разными экранами / плотность / языки, которые вы, возможно, захотите рассмотреть Что у вас есть этот вариант.

Также интересным, хотя и не специфичным для изображений, является то, как андроид обрабатывает ресурсы. Это дает им порядок загрузки, где более конкретное означает, что он будет выбран менее конкретным.

Например, у вас есть три значения String в файле strings.xml в папке значений. У вас также есть одна конкретная строка в папке с именем values-en. Когда андроид откроет ваше приложение и ваши совпадения locale en, он загрузит два значения по умолчанию из папки значений и третьей, более конкретной строки, из значений-en. Если ваш язык – ru, он просто будет использовать значение по умолчанию, потому что у вас нет папки значений-ru.

То же самое верно для изображений. Если Android не может найти изображения для вашего конкретного варианта экрана, он будет использовать значения по умолчанию из выпадающей папки.

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