Подтвердить что ты не робот

Как подготовить изображения для всех разрешений для Android?

В iOS подготовка графики проста. Есть либо нормальное изображение (высота x ширина), либо изображение сетчатки, которое равно 2x (2 раза высота х 2 раза).

Однако, поскольку я новичок в Android, я вижу тонну выделяемых * папок в Eclipse, где * может быть "hdpi" или "ldpi" или "mdpi" или "xhdpi" или "xxhdpi". Может кто-то очень ясно и просто перечислить для меня, что я должен сделать, чтобы удовлетворить каждую из возможностей отображения, чтобы мои изображения выглядели правильно в каждом случае? Я предполагаю, что ответ будет списком пули с каждым "*" и списком подпулов, включая все, что нужно сделать.

Мне также понравился бы ответ, который начнется с самого высокого размера и максимального размера изображения и будет работать с тех пор, как я буду создавать в Photoshop и уменьшу качество от основного изображения. Спасибо заранее!

4b9b3361

Ответ 1

Я получил это от этого сайта некоторое время назад, он все еще пригодится

xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp
Generalised Dpi values for screens:

ldpi Resources for low-density (ldpi) screens (~120dpi)
mdpi Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline density.)
hdpi Resources for high-density (hdpi) screens (~240dpi).
xhdpi Resources for extra high-density (xhdpi) screens (~320dpi).
Therefore generalised size of your resources (assuming they are full screen):

ldpi
Vertical = 426 * 120 / 160 = 319.5px
Horizontal = 320 * 120 / 160 = 240px
mdpi
Vertical = 470 * 160 / 160 = 470px
Horizontal = 320 * 160 / 160 = 320px
hdpi
Vertical = 640 * 240 / 160 = 960px
Horizontal = 480 * 240 / 160 = 720px
xhdpi
Vertical = 960 * 320 / 160 = 1920px
Horizontal = 720 * 320 / 160 = 1440px

px = dp*dpi/160

Ответ 2

В Android Studio просто перейдите к File -> New -> Image Asset и создайте свои изображения прямо из среды IDE.

Ответ 3

На Android мы обычно обрабатываем размеры изображений в единицах "dp" или "dip", что означает независимый от устройства пиксель. 1 dip = 1 пиксель, на экране mdpi. Там есть множество устройств с разной плотностью экрана, а не только нормальная и сетчатая, поэтому есть несколько кодов DPI, на которые может попасть экран устройства:

  • ldpi (с низким разрешением): около 120 точек на дюйм
  • mdpi (средний dpi): около 160 точек на дюйм
  • hdpi (с высоким разрешением): около 240 точек на дюйм
  • xhdpi (xtra high dpi): около 320 точек на дюйм

Обратите внимание, что это ведра, поэтому устройство с экраном с разрешением 170 точек на дюйм будет считаться устройством mdpi.

Скажем, что у вас есть векторное изображение в PS, и вам нужно создать ресурс изображений для Android, и вы хотите поддерживать все эти плотности экрана. Скажем, что изображение должно быть размером 100x100. Таким образом, вы создаете версию 100x100 пикселей для mdpi, версию размером 150x150 пикселей для hdpi, 200x200 для xhdpi и 75x75 для ldpi. Вы можете думать о "mdpi - xhdpi" на Android как "нормальная сетчатка" на iOS.

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

Ответ 4

Существует онлайн-инструмент для Android Asset Studio А также есть File | New | Android Icon Set в Eclipse