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

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

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

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

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

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

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 

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

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

  • Ldpi (с низким разрешением): около 120 dpi
  • Mdpi (средний dpi): около 160 точек на дюйм
  • Hdpi (с высоким разрешением): около 240 точек на дюйм
  • Xhdpi (xtra high dpi): около 320 точек на дюйм

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

Предположим, что у вас есть векторный образ в PS, и вам нужно создать ресурс изображений для Android, и вы хотите поддерживать все эти плотности экрана. Предположим, что изображение должно быть размером 100×100. Таким образом, вы создаете версию 100×100 пикселей для mdpi, версию 150×150 пикселей для hdpi, 200×200 для xhdpi и 75×75 для ldpi. Вы можете думать о «mdpi – xhdpi» на Android как «нормальная сетчатка» на iOS.

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

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