Ответ 1
Android обрабатывает mdpi (160 пикселей/дюйм) в качестве базовой плотности. Итак, для устройств mdpi, 1 dp = 1 пиксель. При более высоких плотностях на пиксель больше пикселей (240 для hdpi, 320 для xhdpi).
Масштабирование AutoMatic самим Android:
Android пытается сделать графические изображения занимают одинаковые физические размеры на экране, независимо от плотности пикселей устройства. Итак, если все, что он находит, является ресурсом mdpi, а устройство - hdpi, оно будет масштабировать изображение на 240/160 = 150%, и оно удвоит размер графика для xhdpi.
Использование разных версий графики:
Если вы не хотите, чтобы это автоматическое масштабирование (что может ухудшить качество графики), вы можете просто предоставить свою собственную версию графических ресурсов для использования при более высоких плотностях. Эти графики должны быть того же размера, что Android будет масштабировать ресурс mdpi.
Примечание. пиксель/дюйм, который был сохранен в файле изображения, не имеет к этому никакого отношения. Все это основано на размещении графических файлов в каталоге ресурсов для вашего проекта. Предполагается, что любая графика, размещенная в res/drawable, будет правильно отображаться для дисплеев mdpi, а также графики, помещенные в res/drawable-mdpi. Предполагается, что файлы изображений, найденные в res/drawable-hdpi надлежащим образом отображаемый для дисплеев hdpi и т.д. Когда ваша программа запускается на определенном устройстве, Android сначала ищет графику, которая соответствует плотности экрана этого устройства. Если он не найдет его, а вместо него найдет его для другой плотности, он будет использовать его и автоматически масштабирует изображение на основе вышеуказанных правил.
Как и ldpi, mdpi и hdpi относятся к плотности экрана, которая означает, сколько пикселей может вписаться в один дюйм.
отношение в пикселях между ними:
ldpi = 1:0.75
mdpi = 1:1
hdpi = 1:1.5
xhdpi = 1:2
xxhdpi = 1:3
поэтому давайте изображение размером около 100X100:
for mdpi it should be 100X100
for ldpi it should be 75X75
for hdpi it should be 150X150
for xhdpi it should be 200X200
for xxhdpi it should be 300X300
таким образом, для экранов с одинаковым размером, но с разными DPI, все изображения кажутся одинаковыми по размеру на экране.