Устройства с разными разрешениями доступа к одной и той же папке drawable-xxxx
Я разрабатываю приложение для всех доступных разрешений экрана. Мой подход заключается в создании различных папок drawable
и хранении в них соответствующих изображений. Все шло прекрасно, пока я не обнаружил столкновение между двумя устройствами с разными разрешениями. Устройства имеют разрешение 480*800
и 600*1024
. Но в соответствии с их плотностью пикселей они обращаются к той же папке drawable
drawable-hdpi
(которая также соответствует данной спецификации на этом изображении ниже).
Моя проблема в том, что изображения в этой папке идеально подходят для одного устройства, а не для другого. Это означает, что если я сохраняю изображения для 600*1024
, они перекрываются в другом устройстве 480*800
и все такое. Я попытался переименовать папку на другие возможные имена, но не смог добиться успеха. Пожалуйста, помогите мне, как я могу справиться с этой ситуацией. Надеюсь, я ясно описал свою ситуацию...
5 ответов:
Привет вы можете поместить все ваши изображения в папку drawable, а затем создать макет папки, как это
Макет-малый
Макет-Большой
Layout-xlarge
Таким образом, вы можете получить доступ ко всем изображениям из одной и той же папки для рисования, и во время запуска вашего приложения оно автоматически создает папки для рисования в bin в соответствии с их размерами, чтобы не возникало конфликтов и перекрытий . Так что проверь вот так .............
Поместите папку
drawable
и сохраните изображения с тем размером, который вы хотите (пусть это будет 30px*20px) добавьте это в свой макет.
В дополнение к ответу @androidgeek, чтобы удовлетворить вашу конкретную потребность, вы можете создать эту папку макета
Res / layout-sw600dp
В этом макете вы можете создать макет для разрешения устройства 600*1024 и использовать отдельные чертежи для этого макета.
Также вы можете попробовать взять только изображения xhdpi и изменить его размер во время выполнения из вашего кода, который, конечно, не является предлагаемым подходом, но эффективен в большинстве случаев
Существует много дезинформации здесь. Только разрешение не определяет плотность пикселей. Экран 480 x 800 px может быть
ldpi
,mdpi
,hdpi
,xhdpi
, илиxxhdpi
. Вы не можете определить, в какое ведро плотности попадает экран, только по его разрешению. Тот самыйldpi
,mdpi
, и т.д. квалификаторы сообщают вам плотность пикселей на дюйм (грубо говоря-они не точны, но близки). Экранhdpi
будет иметь около 240 пикселей в поперечнике на 1 дюйм экрана, Экранmdpi
будет иметь около 160 и др.Вы не можете использовать плотность для определения разрешения. Период.
Если вы пытаетесь создать приложение, которое работает на очень специфических разрешениях, я бы предложил вместо этого разработать для iOS.
Различные устройства получают там изображения из разных папок, его недостаток в устройствах android, даже если его вкладка его не обязательно, что он будет получать свои изображения из drawable-xlarge. Для этого я бы предложил вам сделать разные папки для разных устройств. если вы делаете приложение, которое будет работать идеально на всех устройствах. пробовать
Drawable-ldpi
Drawable-mdpi
Drawable-hdpi
Drawable-xhdpi
Drawable-sw600
Drawable-large-hdpi
Прежде всего папки охватывают почти все устройства. Вам не нужно вставлять разные изображения в каждую папку для разных устройств, потому что если у вас есть изображения в папке hdpi, то mdpi и ldpi автоматически масштабируют эти изображения, в некоторых случаях может быть возможно, что изображения не подходят должным образом для тех случаев, когда вы должны вставить изображения в зависимости от его размера.