Что произойдет, если я оставлю все свои изображения в папке drawable-hdpi? - PullRequest
17 голосов
/ 25 июля 2011

У меня есть все мои изображения в папке drawable-hdpi. И я закончил все мои макеты для всех размеров экрана. Но я забыл поместить изображения в папку drawable-mdpi и папку drawable-ldpi. Если бы мое приложение загружало телефон с плотностью экрана mdpi, использовались бы в нем изображения из папки drawable-hdpi? Или возникнет ошибка, поскольку в папке mdpi нет изображений?

Единственные изображения в папке mdpi и ldpi - это значок.

Ответы [ 4 ]

11 голосов
/ 25 июля 2011

Телефон возьмет изображения с того места, где они доступны. Результат будет таким же, как если бы у вас была только папка "drawable", это просто не логичное имя, если у вас есть только одна папка drawable.

Вы не обязаны предоставлять ресурсы для каждой конфигурации, система просто позаботится об использовании наиболее адаптированных и достаточно умна, чтобы выполнять эту работу. Вы должны прочитать это, чтобы полностью понять, как это работает: http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch

6 голосов
/ 25 июля 2011

Лиркан в основном правильный. Телефоны MDPI возьмут изображение из папки drawable-hdpi. Но система знает, что эти изображения слишком велики для телефона, и уменьшают их для вас.

Большинство ваших пользователей не заметят. Единственная проблема состоит в том, что на телефонах с экранами mdpi или ldpi все изображения будут немного размытыми, поскольку они уменьшаются на лету, чтобы соответствовать другому разрешению экрана.

2 голосов
/ 18 мая 2016

по ссылке http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch

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

однако я также нашел по этой ссылке https://developer.android.com/guide/practices/screens_support.html#support

"Однако, когда система ищет ресурс, специфичный для плотности, и не находит его в каталоге, специфичном для плотности, она не всегда использует ресурсы по умолчанию. Вместо этого система может использовать один из других типов плотности. специальные ресурсы для обеспечения лучших результатов при масштабировании. Например, при поиске ресурса с низкой плотностью, а он недоступен, система предпочитает уменьшать версию ресурса с высокой плотностью, поскольку система может легко масштабироваться ресурс высокой плотности вплоть до низкой плотности в 0,5 раза с меньшим количеством артефактов по сравнению с масштабированием ресурса средней плотности в 0,75 раза. "

1 голос
/ 25 июля 2011

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

...