Устройства с разными разрешениями доступа к одной и той же папке drawable-xxxx


Я разрабатываю приложение для всех доступных разрешений экрана. Мой подход заключается в создании различных папок drawable и хранении в них соответствующих изображений. Все шло прекрасно, пока я не обнаружил столкновение между двумя устройствами с разными разрешениями. Устройства имеют разрешение 480*800 и 600*1024. Но в соответствии с их плотностью пикселей они обращаются к той же папке drawable drawable-hdpi (которая также соответствует данной спецификации на этом изображении ниже).

Моя проблема в том, что изображения в этой папке идеально подходят для одного устройства, а не для другого. Это означает, что если я сохраняю изображения для 600*1024, они перекрываются в другом устройстве 480*800 и все такое. Я попытался переименовать папку на другие возможные имена, но не смог добиться успеха. Пожалуйста, помогите мне, как я могу справиться с этой ситуацией. Надеюсь, я ясно описал свою ситуацию...

5 2

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 автоматически масштабируют эти изображения, в некоторых случаях может быть возможно, что изображения не подходят должным образом для тех случаев, когда вы должны вставить изображения в зависимости от его размера.