Android:支持所有设备的背景图片大小(以像素为单位)


113

我正在创建一个可以在所有Android设备上运行的应用程序。我想为我的应用创建xhdpi图形。我的应用全屏显示。我对创建图形感到困惑。谁能告诉我我的背景图片的最佳尺寸(以像素为单位)。

例如:

  • xhdpi:720x1280像素
  • hdpi:480x800像素
  • 分辨率:320x480像素
  • ldpi:240x320像素

给我建议最好的尺寸,它将出现在所有设备上。因为我的图形是我应用程序的核心。

我希望每个设备都能获得所需的最佳图像。Android将不会参与图像的压缩或扩展。


3
阅读Android文档的Android多屏支持,它们为用户界面提供了标准
RajeshVijayakumar,2012年

对于所有新旧设备以及即将推出的设备,最好使用这一解决方案。stackoverflow.com/a/40255870/2489061
Umer

Answers:


198

以下是使该应用程序在所有设备上运行的最佳尺寸。要了解多个支持屏幕,您必须阅读 http://developer.android.com/guide/practices/screens_support.html

xxxhdpi: 1280x1920 px
xxhdpi: 960x1600 px
xhdpi: 640x960 px
hdpi: 480x800 px
mdpi: 320x480 px
ldpi: 240x320 px

10
XX应该是2倍HDPI
LarryBud 2013年

1
有趣的是,连结5是xxhdpi,但屏幕尺寸是1080x1920
罗马

3
LG G3的分辨率为1440 x 2560,使用xxxhdpi。
Roel 2014年

1
那就是android的主要问题/挑战,没有针对hdpi,xhdpi等设置大小的设置,因为每个制造商都可以制造不同大小的手机/平板电脑,而IOS则只有苹果制造。查看范围部分:developer.android.com/guide/practices/…–
toidiu

对于所有新旧设备以及即将推出的设备,最好使用这一解决方案。stackoverflow.com/a/40255870/2489061
Umer

63

Android设备矩阵

                            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/


为什么这些论文与此处建议的乘数不符? developer.android.com/training/multiscreen/screendensities#java


5

我在互联网上四处寻找用于这些密度的正方形图像的正确尺寸,但找不到可靠的东西。

如果有什么安慰的话,请参考Veerababu Medisetti的答案,我将这些尺寸用于SQUARES :)

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

对于所有新旧设备以及即将推出的设备,最好使用这一解决方案。stackoverflow.com/a/40255870/2489061
Umer's

4

GIMP工具正是您为不同像素分辨率的设备创建图像所需要的。

跟着这些步骤:

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

    xxxhdpi:1280x1920像素

    xxhdpi:960x1600 px

    xhdpi:640x960 px

    hdpi:480x800像素

    分辨率:320x480像素

    ldpi:240x320像素

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


3

我的理解是,如果您使用某个View对象(例如应该使用android:windowBackground),Android会自动将您的图片缩放到正确的尺寸。问题是缩放过多会导致伪影(上下缩放期间)和模糊。由于市场上的分辨率和长宽比各不相同,不可能为每个屏幕创建“完美”的屏幕,但是您可以尽最大努力确保仅需一点点缩放,从而减轻不必要的副作用。所以我要做的是:

  • 在六个广义密度(ldpi,mdpi,hdpi等)之间保持3:4:6:8:12:16的缩放比例。
  • 您不应该为UI元素包括xxxhdpi元素,此分辨率仅用于升级启动器图标(仅适用于mipmap文件夹)... 除启动器图标外,您不应将xxxhdpi限定符用于UI元素。...... 虽然如。在Samsung edge 7上getDisplayMetrics().density返回4(xxxhdpi),因此此信息可能已过时。
  • 然后查看市场上的新手机型号,并找到具有代表性的型号。假设新的Google像素很好地代表了Android手机:它的分辨率为1440 dpi,分辨率为1080 x 1920,屏幕尺寸为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倍,使我的最大分辨率背景图像保持在大约480像素。1200x2100,然后应按3:4:6:8:12缩放。
  • 请记住,您只需要为位图文件(.png,.jpg或.gif)和Nine-Patch文件(.9.png)提供特定于密度的可绘制对象。如果使用XML文件定义可绘制资源(例如形状),只需将一个副本放入默认的可绘制目录中。
  • 如果您必须适应很大或奇怪的长宽比,也可以使用这些标记为它们创建特定的文件夹。swlonglarge,等。
  • 无需两次绘制背景。因此用<item name="android:windowBackground">@null</item>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.