Intereting Posts
Падение панорамы Android Fragment Transition RecyclerView Swipe с изображением под ним Android как закончить деятельность от другой деятельности Android – получить видимую область просмотра? Рабочий многоточечный запрос POST с волейболом и без HttpEntity Изменение разделителя с помощью setDivider в ListActivity без пользовательского ListView? Почему TypedArray следует перерабатывать? Android – Пользовательская анимация на транзакции фрагмента не запущена Android: цифры, не позволяющие следующей кнопке на клавиатуре Что означает значение «String … params», если оно передается как параметр? Обнаружение объекта для Android с помощью tesseract или OpenCV «Отбор не может быть запущен, и нет новых запусков», когда Eclipse для Android Project Dev Есть ли способ определить, установлено ли приложение с Market или нет? Как изменить текущий цвет ярлыка вкладки в Android ViewPager? Как получить текущее смещение Y ScrollView

Как работает папка mdpi, hdpi, xhdpi?

Извлечение из руководства разработчика Android выше:

320dp: обычный экран телефона (240×320 ldpi, 320×480 mdpi, 480×800 hdpi и т. Д.).
480dp: планшет Tweener, такой как Streak (480×800 mdpi).
600dp: 7-дюймовый планшет (600×1024 mdpi).
720dp: 10-дюймовый планшет (720×1280 mdpi, 800×1280 mdpi и т. Д.)

Так что я получил графику (изображения) с разрешением 320 пикселей на дюйм от дизайнера только в этих измерениях

480×800 hdpi

720×1280 mdpi

800×1280 mdpi

Я запутался, какой размер изображений должен быть помещен в папку mdpi, папку hdpi и папку xhdpi. Я хочу сделать одно приложение, которое может работать на большинстве телефонов и планшетов Android.

Solutions Collecting From Web of "Как работает папка mdpi, hdpi, xhdpi?"

Вы можете создавать различные графические объекты для использования при разных значениях плотности пикселей. Android обрабатывает mdpi (160 пикселей / дюйм) в качестве базовой плотности. Так для устройств mdpi, 1 dp = 1 пиксель. При более высоких плотностях на дюйм больше пикселей (240 для hdpi, 320 для xhdpi). Android пытается сделать графические изображения занимают одинаковые физические размеры на экране, независимо от плотности пикселей устройства. Таким образом, если все, что он находит, является ресурсом mdpi, а устройство – hdpi, оно масштабирует графику на 240/160 = 150%, и это удвоит размер графика для xhdpi.

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

Обратите внимание, что пиксели / дюймы, которые были сохранены в файле изображения, не имеют к этому никакого отношения. Все это основано на том, где вы помещаете графические файлы в каталог ресурсов для своего проекта. Предполагается, что любая графика, помещенная в res/drawable , будет надлежащим образом отображаться для дисплеев mdpi, а также графики, размещенные в res/drawable-mdpi . Предполагается, что файлы изображений, найденные в res/drawable-hdpi имеют надлежащий размер для дисплеев hdpi и т. Д. Когда ваша программа запускается на определенном устройстве, Android сначала ищет графику, которая соответствует плотности экрана этого устройства. Если он не найдет его, а вместо этого найдет его для другой плотности, он будет использовать его и автоматически масштабировать изображение на основе вышеуказанных правил.

Когда вы запрашиваете ресурс, для которого вы предоставляете альтернативы, Android выбирает, какой альтернативный ресурс использовать во время выполнения, в зависимости от текущей конфигурации устройства. Чтобы продемонстрировать, как Android выбирает альтернативный ресурс, предположим, что следующие доступные каталоги содержат разные версии одних и тех же изображений:

 drawable/ drawable-en/ drawable-fr-rCA/ drawable-en-port/ drawable-en-notouch-12key/ drawable-port-ldpi/ drawable-port-notouch-12key/ 

И предположим, что следующая конфигурация устройства:

 Locale = en-GB Screen orientation = port Screen pixel density = hdpi Touchscreen type = notouch Primary text input method = 12key 

Сравнивая конфигурацию устройства с доступными альтернативными ресурсами, Android выбирает чертежи из drawable-en-port.

Система принимает свое решение, для которого ресурсы могут использоваться со следующей логикой:

Введите описание изображения здесь

Ref: Как Android называет наилучший ресурс

Другие ссылки: независимость от плотности , предоставление альтернативных ресурсов и передовой практики

И я скажу, что вы должны прочитать полную страницу « Поддержка нескольких экранов» , я не думаю, что ни одна документация не будет лучше, чем она …

Я запутался во всей фрагментации размера экрана, но основы: 1. Вам нужно создать различные папки под макетами для работы с вашими изображениями. 2. Изображения будут существовать в папках drawables также в разных папках. 3. У вас должна быть папка basic / layout и / drawable для сопровождения неспецифических папок. 4. Работайте с xhdpi, а затем масштабируйте изображения вниз!

Примеры конкретных экранов экрана: / layout-hdpi / layout-xhdpi / drawable-hdpi / drawable-xhdpi

Из того, что я знаю: 480 x 800 – hdpi (более старые телефоны, например S2, HTC Desire и т. Д.) 720 x 1280 – xhdpi (новые телефоны, например S3, Galaxy Nexus и т. Д.)

В принципе, в зависимости от телефона, андроид будет захватывать ресурсы из необходимой папки, а если их нет, то он будет извлекать из основной папки «\ layout» или «\ drawable». Например, приложение, работающее на Galaxy Nexus, будет захватывать ресурсы из «\ layout-xhdpi», если папка существует.

Да, вы можете сделать одно приложение, но нужно создавать папки: / res / drawable, / res / drawable-mdpi, / res / drawable-hdpi и добавлять контент для всех размеров экрана