安卓:支持所有设备的背景图像尺寸(以像素为单位)

126
我正在创建一个可以在所有安卓设备上运行的应用程序。我想为我的应用程序创建xhdpi图形。我的应用程序是全屏的。我对创建图形感到困惑。有人能告诉我背景图片的最佳像素大小吗?
例如:
  • xhdpi:720x1280像素
  • hdpi:480x800像素
  • mdpi:320x480像素
  • ldpi:240x320像素
请建议适合所有设备的最佳大小。因为我的图形是我的应用程序的核心。
我希望每个设备都能获得最好的图像。Android不会涉及图像的压缩或扩展。

3
阅读Android文档的Android多屏幕支持部分,其中提供了用户界面标准。 - RajeshVijayakumar
使用这个解决方案是最适合所有旧的、新的和即将推出的设备的。https://dev59.com/LGcs5IYBdhLWcg3wPxce#40255870 - Umer
6个回答

209

1
有趣的是,Nexus 5是XXHDPI,但它的屏幕尺寸为1080x1920。 - Roman
3
LG G3的分辨率为1440 x 2560,使用xxxhdpi。 - Roel
1
这就是Android的主要问题和挑战,因为没有针对hdpi、xhdpi等设定固定的尺寸,每个制造商都可以生产不同尺寸的手机/平板电脑,而与之不同的是iOS只有苹果自己生产。请查看范围部分:http://developer.android.com/guide/practices/screens_support.html#range - toidiu
使用这个解决方案是最适合所有旧的、新的和即将推出的设备的。https://dev59.com/LGcs5IYBdhLWcg3wPxce#40255870 - Umer
DPI是多少? - M.kazem Akhgary
这是高度乘以宽度还是宽度乘以高度? - Neo-coder

69

安卓设备矩阵

                            ldpi     mdpi     hdpi    xhdpi    xxhdpi      xxxhdpi
Launcher And Home           36*36    48*48   72*72    96*96    144*144     192*192
Toolbar And Tab             24*24    32*32   48*48    64*64    96*96       128*128
Notification                18*18    24*24   36*36    48*48    72*72       96*96 
Background                 240*320  320*480 480*800  768*1280  1080 *1920  1440*2560 

在设计屏幕时,建议从背景屏幕的总高度中减去工具栏的大小,并设计屏幕图形。

如需更多帮助(此链接也包括平板电脑):

https://design.google.com/devices/

Android原生图标(推荐)您可以通过编程方式更改这些图标的颜色。 https://design.google.com/icons/


为什么这些与此处建议的乘数不对齐?https://developer.android.com/training/multiscreen/screendensities#java - Ben

20

请检查。这张图片将在不同屏幕尺寸的所有图标大小上显示。

尺寸


4
这句话的意思是“这是从哪里来的?” - Mohammed Sohail Ebrahim
请提供需要翻译的英文文本,谢谢! - Ketan Ramani

5

我在互联网上寻找正方形图片的正确密度,但是没有找到可靠的内容。

如果有安慰的话,参考Veerababu Medisetti的回答,我使用这些维度来制作正方形图片 :)

xxxhdpi: 1280x1280 px
xxhdpi: 960x960 px
xhdpi: 640x640 px
hdpi: 480x480 px
mdpi: 320x320 px
ldpi: 240x240 px

使用这个解决方案是最适合所有旧的、新的和即将推出的设备的。https://dev59.com/LGcs5IYBdhLWcg3wPxce#40255870 - Umer

4

GIMP工具正是您需要的,用于创建适用于不同像素分辨率设备的图像。

按照以下步骤进行:

  1. 在GIMP工具中打开现有图像。
  2. 进入“图像”菜单,选择“缩放图像…”。
  3. 使用所需的以下像素尺寸:

    xxxhdpi:1280x1920 px

    xxhdpi:960x1600 px

    xhdpi:640x960 px

    hdpi:480x800 px

    mdpi:320x480 px

    ldpi:240x320 px

  4. 然后从“文件”菜单中“导出”图像。


4

我的理解是,如果您使用View对象(而不是例如android:windowBackground),Android会自动将您的图像缩放到正确的大小。问题是太多的缩放可能导致伪影(在上下缩放过程中)和模糊。由于市场上存在各种分辨率和宽高比,因此不可能为每个屏幕创建“完美”适合的图像,但您可以尽力确保只需进行少量缩放,从而减轻不必要的副作用。所以我会这样做:

  • 保持六个常用像素密度(ldpi、mdpi、hdpi等)之间的3:4:6:8:12:16比例。
  • 在UI元素中不应包含xxxhdpi元素,此分辨率仅用于缩放启动器图标(因此仅使用mipmap文件夹)...在UI元素中不应使用xxxhdpi限定符,除了启动器图标之外。 ...尽管例如,在三星edge 7上调用getDisplayMetrics().density返回4(xxxhdpi),所以这些信息可能已经过时。
  • 然后查看市场上的新手机型号,并找到代表性的型号。假设新的Google Pixel是Android手机的良好代表:它具有1080 x 1920的分辨率和441dpi,并且屏幕大小为4.4 x 2.5英寸。 然后从Android开发人员文档中获取以下信息:

    • ldpi(低)~120dpi
    • mdpi(中)~160dpi
    • hdpi(高)~240dpi
    • xhdpi(超高)~320dpi
    • xxhdpi(超高)~480dpi
    • xxxhdpi(超级高)~640dpi

    这对应于xxhdpi屏幕。从这里,我可以按照上述(3:4:6:8:12)比例缩小这些1080 x 1920。

  • 我还可以确认,降采样通常是一种简单的缩放方式,因此我可能希望在我的apk中捆绑略微过大的位图(注意:内存消耗较大)。再次假设像素屏幕的宽度和高度是代表性的,则将1080x1920按480/441倍数放大,将我的最大分辨率背景图留在约1200x2100左右,然后按照3:4:6:8:12进行缩放。
  • 请记住,您只需要为位图文件(.png、.jpg或.gif)和Nine-Patch文件(.9.png)提供密度特定的可绘制资源。如果使用XML文件定义可绘制资源(例如形状),只需将一个副本放在默认的drawable目录中。
  • 如果必须适应非常大或奇怪的宽高比,请为其创建特定文件夹,使用相应的标志,例如swlonglarge等。
  • 不需要绘制两次背景。因此,请使用<item name="android:windowBackground">@null</item>设置样式

我正在使用XML文件在Android中显示图像。那么哪些像素更适合1080p? - sejn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接