我如何准备所有Android分辨率的图像?

在iOS上准备graphics很简单。 有一个正常的图像(高x宽)或视网膜图像是@ 2x(2倍的高度x 2倍的宽度)。

不过,由于我是Android新手,在Eclipse中可以看到大量的drawable *文件夹,其中*可以是“hdpi”或“ldpi”或“mdpi”或“xhdpi”或“xxhdpi”。 有人可以非常清楚,简单地列出我必须做什么来满足每个显示的可能性,所以我的图像在每个实例中看起来都是正确的吗? 我设想一个答案将是一个列出每个“*”的子弹列表和一个子项目列表,包括必须完成的事情。

我也非常喜欢这个答案,它将从最高密度和最大尺寸的图像开始,继续下去,因为我将在Photoshop中创build图像,并将从主图像中降低质量。 提前致谢!

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中创build图像。

在Android上,我们通常以“dp”或“dip”为单位处理图像大小,代表设备独立像素。 1 dip = 1像素,在mdpi屏幕上。 有不同的屏幕密度,不只是正常和视网膜,所以有一个设备的屏幕可能会落入多个DPI桶:

  • ldpi(低dpi):大约120 dpi
  • mdpi(中等dpi):160 dpi左右
  • hdpi(高dpi):大约240 dpi
  • xhdpi(xtra high dpi):320 dpi左右

请注意,这些是存储桶,因此具有170 dpi屏幕的设备将被视为一个mdpi设备。

假设您在PS中有一个基于vector的图像,并且您需要为Android创build一个图像资源,并且您希望支持所有这些屏幕密度。 比方说,图像需要100×100的大。 因此,您为mdpi创build了一个100×100像素的版本,为hdpi创build了一个150×150像素的版本,为xhdpi创build了一个200×200的版本,为ldpi创build了一个75×75的版本。 您可以将Android上的“mdpi – xhdpi”视为iOS上的“normal – retina”。

至于你可以使用的大图像尺寸,我真的不能说。 据我所知,没有硬限制,但是由于堆的限制,该设备显然无法将20000×20000位图加载到内存中,而没有下采样。

有一个Android Asset Studio的在线工具,在Eclipse中也有File | New | Android图标集