Nodpi что такое
Перейти к содержимому

Nodpi что такое

  • автор:

В чем разница между квалификаторами -nodpi и -anydpi?

Директория ресурсов с квалификатором -nodpi предназначена для ресурсов, которые не зависят от плотности экрана. Система не масштабирует картинки из drawables-nodpi/ .

Квалификатор -anydpi был добавлен в API v21. Ресурсы из -anydpi подходят для всех конфигураций экрана. Приоритет -anydpi выше, чем у квалификаторов конкретной плотности экрана ( -hdpi , -mdpi , и т.д.). Как правило -anydpi используется для векторных картинок.

Что такое DPI в телефоне и на что это влияет

Ядра, гигагерцы, гигабайты мегапиксели – это стандартные термины для 21 века, которые слышал ну практически каждый. По отдельности они могут использоваться в самых разных отраслях, однако вместе встречаются только применительно к смартфонам. Но если раньше относящиеся к ним цифры было принято знать практически наизусть, то сегодня в этом практически нет никакого смысла. В конце концов, какая разница, на какой частоте работает процессор вашего смартфона, если он работает хорошо и не тормозит? Другое дело, что есть ещё показатели, которые лучше знать наизусть.

Что такое DPI в телефоне и на что это влияет. DPI и PPI — суть то же самое, но не совсем. Фото.

DPI и PPI — суть то же самое, но не совсем

Что такое ярлыки на Android, зачем они нужны и как ими пользоваться

Я говорю о DPI (dots per inch). В переводе на русский язык этот термин обозначает количество точек на дюйм. По своей сути он довольно близок к PPI (pixels per inch) – количеству пикселей на дюйм. И тот, и другой обозначают разрешающую способность. Но если PPI – это цифровой показатель, который демонстрирует, сколько пикселей может поместиться на каждый квадратный дюйм дисплея, то DPI – это, скорее, характеристика картинки, которой предстоит отображаться на каком-то экране.

Зачем нужен DPI

Зачем нужен DPI. Скачивая APK-файлы приложений, обращайте внимание на графу DPI. Фото.

Скачивая APK-файлы приложений, обращайте внимание на графу DPI

DPI играет большое значение для приложений. Некоторые разработчики изначально адаптируют свой софт под конкретную плотность точек на дюйм: 120, 160, 200, 300 и больше. Это значит, что приложению для работы требуется, чтобы экран смартфона обладал таким разрешением, чтобы его показатель PPI в точности совпадал с показателем DPI. От этого зависит, будет ли приложение работать на устройстве или не будет. Это важно знать, когда вы скачиваете приложения в виде APK-файлов на альтернативных Google Play площадках.

По факту, DPI – это показатель как бы графического объёма, который предстоит занять изображению, а PPI – это показатель как бы графической ёмкости, которой это изображение предстоит вместить.

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

Не устанавливается APK на Android

Я больше чем уверен, что большинство пользователей даже понятия не имеют, какой показатель PPI (DPI) имеет экран их смартфона. Это я сужу по себе. Нет, я знаю, какое разрешение у моего аппарата, но вот какую оно даёт плотность пикселей на выходе, даже не представляю. К счастью, высчитывать его самостоятельно, тем более что это довольно сложно, поскольку дисплеи современных устройств зачастую имеют форму не строгих прямоугольников, необходимости нет.

Как проверить DPI телефона

Для этой цели существует специальное приложение DPI Checker. Вот как оно работает:

  • Скачайте приложение DPI Checker из Google Play;
  • Запустите его и примите пользовательское соглашение;

Как проверить DPI телефона. DPI Checker — приложение, которое измеряет показатели DPI вашего смартфона. Фото.

DPI Checker — приложение, которое измеряет показатели DPI вашего смартфона

  • На главной странице нажмите розовую кнопку измерения;
  • Сравните полученный результат с требованиями APK-файла.

В моём случае, как видите, показатель DPI равен 480 точкам. Это стандарт для большинства смартфонов с диагональю дисплея 6,5 дюймов и разрешением Full HD+. То есть он ничем не отличается от любого другого аппарата со схожими характеристиками, а значит, должен поддерживать подавляющее большинство приложений. Если же показатель DPI вашего смартфона не соответствует требованиям приложения, выберите альтернативную версию apk, либо скачайте программу из Google Play – он сам подберёт нужную версию.

Оставить комментарий в Telegram. Поделитесь мнением в чате читателей Androidinsider.ru

Теги

  • Дисплей телефона
  • Новичкам в Android
  • Приложения для Андроид

Наши соцсети

Новости, статьи и анонсы публикаций

Android — советы и подсказки. Как узнать DPI вашего смартфона или планшета для скачивания подходящих версий APK файлов для них

Большинству более или менее опытных пользователей Android устройств хорошо известно, что устанавливать игры и приложения на них можно не только из онлайн магазина Google Play Маркет, но и из APK файлов, которые можно скачать с различных ресурсов.

Android — советы и подсказки. Как узнать DPI вашего смартфона или планшета для скачивания подходящих версий APK файлов для них

Однако, зачастую они испытывают затруднения в том, чтобы скачать правильный APK файл для смартфона или планшета, оптимизированный под размер и разрешение его экрана или — плотность упаковки пикселей, которая обозначается аббревиатурой DPI. Сегодня я хочу поделиться с вами одним из способом, позволяющим узнать значение DPI дисплея вашего Android устройства.

Сделать это очень и очень просто.

Прежде всего вам нужно будет установить на свой смартфон или планшет бесплатное приложение Display Info от разработчика Stefano Sanna, которое доступно для скачивание с этой страницы Google Play Маркет.

После запуска Display Info отобразит информацию о параметрах дисплея вашего Android устройства (скриншот ниже, слева). Как вы уже поняли, нам потребуется значение DPI, которое отображается в строке «Density».

Теперь зная значение DPI экрана вашего смартфона или планшета, вы можете скачать подходящий вам вариант APK файла. Для этого вам нужно выбрать файл в описании которого DPI равно или выше (ближайшее значение) DPI полученного от приложения Display Info. Пример вы видите ниже:

Android — советы и подсказки. Как узнать DPI вашего смартфона или планшета для скачивания подходящих версий APK файлов для них

Помимо этого, в отдельных случаях, если никакой из имеющихся вариантов вам не подходит, вы можете выбрать APK файл с пометкой «nodpi», который должен быть совместим с любым разрешением дисплея.

Похожие материалы:

What Is The Difference Between -anydpi And -nodpi?

If you use the Vector Asset wizard in Android Studio 1.5.0, any vector drawable XML you import using that wizard goes into res/drawable/ . However, the build/ directory, and the resulting APK show that those XML files get moved into a res/drawable-anydpi-v21/ resource directory. The -v21 part makes sense, as VectorDrawable is only supported on API Level 21+. However, -anydpi seems to be undocumented. I would have expected -nodpi , both for the original import destination and for where the build system elects to move it. Has anyone seen official statements for what -anydpi means, and what its relationship is with -nodpi ? I am looking for practical effects, not merely what some code comments hint at.

8,094 5 5 gold badges 39 39 silver badges 57 57 bronze badges
asked Dec 8, 2015 at 13:18
CommonsWare CommonsWare
990k 191 191 gold badges 2399 2399 silver badges 2511 2511 bronze badges
Sep 16, 2017 at 4:43

It is now 2023 and for the last 6 years I’ve been coming back to this question because I can’t for the life of me remember which is which. I just know one of them is a fallback and the other is an override. Does anybody have a mnemonic to help remember this?

Apr 27 at 9:26

4 Answers 4

nodpi

These are density-independent resources. The system does not scale resources tagged with this qualifier, regardless of the current screen’s density.

The dot will appear small on xxhdpi, big on ldpi.

However, the resource resolver will match a specific qualifier if it exists.

On a Lollipop (API 21) hdpi device, the bitmap is used.

On a Lollipop (API 21) xhdpi device, the vector is used.

anydpi

These resources take precedence in any dpi.

On a Lollipop (API 21) hdpi device, the vector is used.

On a Lollipop (API 21) xhdpi device, the vector is used.

Reference

answered Dec 19, 2015 at 12:27
26.4k 20 20 gold badges 107 107 silver badges 135 135 bronze badges

That’s not what I am seeing. Quoting my bounty: «Given two editions of the same resource in res/drawable-nodpi/ and res-drawable-mdpi/, I get the res/drawable-nodpi/ edition on a Nexus 5 running Android 6.0, which is an -xxhdpi device». Do you have a sample project that demonstrates the behavior that you are citing?

Dec 19, 2015 at 12:30

That’s because you used drawable . The bahaviour of the SDK can have changed. See VectorDrawable: Android loads xhdpi PNG’s instead of the vector resource

Dec 19, 2015 at 12:49

«On a xxxdpi, the framework will take the hdpi bitmap.» — that is specifically what is not happening, though my testing is on an -xxhdpi device. I have res/drawable-mdpi/nodpi_and_m.png and res/drawable-nodpi/nodpi_and_m.xml . On a Nexus 5, -xxhdpi device, the resource that is used is res/drawable-nodpi/nodpi_and_m.xml . According to your algorithm, and my expectations, res/drawable-mdpi/nodpi_and_m.png should be used. That is not what is happening.

Dec 19, 2015 at 12:57

Bottom line: you should place vectors in drawable-anydpi-v21 . If you have the support-vector-drawable library, you can place them in drawable-anydpi or simply drawable .

Mar 12, 2016 at 18:38

One big advantage to a drawable-nodpi folder is that scaling increases app memory use exponentially on the user end for high res screens (4x,16x,etc) with the default drawable folder. I found this out by checking the memory use of my game app while running with drawable vs drawable-nodpi graphic assets. I’m surprised this isn’t documented anywhere.

Mar 17, 2018 at 20:24

I use drawable-nodpi for everything, including plenty of large graphics for my game. An undocumented consequence of scaling up your graphics with -anydpi is that it increases memory use exponentially. So if you have a 1MB graphic in drawable, it will get scaled to 4MB, 16MB, 64MB, or more depending on the resolution of the user device. And device resolutions keep going up. That scaling up doesn’t actually increase the sharpness of the graphic, of course. Normally drawing actions are available to direct how large each graphic should be in relation to screen size anyway, no need to bloat the app. I don’t use multiple resolution specific draw folders either to save on memory and housekeeping.

answered Mar 17, 2018 at 19:47
Androidcoder Androidcoder
4,459 5 5 gold badges 35 35 silver badges 51 51 bronze badges

underrated answer. I encountered the same issue: had an image 100KB big, but frequently had OOM errors when loading it. The app crashed stating it could not allocate 18MB. Could not understand how these 100KB could be turned into 18MB, but it was actually the result of that scaling. Switching the image to no-dpi solved the issue.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *