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

时间:2012-10-23 05:51:24

标签: android graphics

我正在创建一个可在所有Android设备上运行的应用程序。我想为我的应用程序创建xhdpi Graphics。我的应用程序全屏。我对创建图形很困惑。可以任何人告诉我背景图像的最佳尺寸,以像素为单位。

例如:

  • xhdpi:720x1280 px
  • hdpi:480x800 px
  • mdpi:320x480 px
  • ldpi:240x320 px

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

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

6 个答案:

答案 0 :(得分:186)

以下是应用在所有设备上运行的最佳维度。要了解多个支持屏幕,您必须阅读 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

答案 1 :(得分:54)

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原生图标(推荐)您可以更改这些图标programmatically的颜色。 https://design.google.com/icons/

答案 2 :(得分:7)

选中此项。该图片将针对不同屏幕尺寸的所有图标尺寸显示

Size

答案 3 :(得分:4)

我环顾互联网寻找方形图像的这些密度的正确尺寸,但找不到任何可靠的东西。

如果有任何安慰,请参考Veerababu Medisetti's answer我将这些维度用于 SQUARES :)

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

答案 4 :(得分:3)

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

请按照以下步骤操作:

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

    xxxhdpi:1280x1920 px

    xxhdpi:960x1600 px

    xhdpi:640x960 px

    hdpi:480x800 px

    mdpi:320x480 px

    ldpi:240x320 px

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

答案 5 :(得分:2)

我的理解是,如果您使用View对象(例如。android:windowBackground),Android会自动将您的图片缩放到正确的大小。问题是过多的缩放会导致伪像(在向上和向下缩放期间)和模糊。由于市场上的各种分辨率和方面比率,不可能创造出完美的"适合每个屏幕,但您可以尽力确保只需要进行一些缩放,从而减轻不必要的副作用。所以我要做的是:

  • 保持3:4:6:8:12:16六个广义密度(ldpi,mdpi,hdpi等)之间的缩放比例。
  • 您不应该为UI元素包含xxxhdpi元素,此分辨率仅用于升级启动器图标(仅限mipmap文件夹)... You should not use the xxxhdpi qualifier for UI elements other than the launcher icon. ... 尽管例如。在三星边缘7调用getDisplayMetrics().density返回4(xxxhdpi),所以这个信息可能已经过时了。
  • 然后看看市场上的新手机型号,找到具有代表性的手机型号。假设新的谷歌像素是Android手机的一个很好的代表:它具有1080 x 1920分辨率,441 dpi,屏幕尺寸为4.4 x 2.5 inches。然后从the android developer docs

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

    这对应于xxhdpi屏幕。从这里我可以将这些1080 x 1920缩小到上面的(3:4:6:8:12)比率。

  • 我还可以承认,下采样通常是一种简单的扩展方式,因此我可能需要在我的apk中捆绑稍微过大的位图(注意:内存消耗较高)。再一次假设像素屏幕的宽度和高度是具有代表性的,我会将1080x1920的比例放大480/441倍,使我的最大分辨率背景图像保持在大约。 1200x2100,然后按3:4:6:8:12缩放。
  • 请记住,您只需要为位图文件(.png,.jpg或.gif)和Nine-Patch文件(.9.png)提供特定于密度的drawable。如果您使用XML文件来定义可绘制资源(例如形状),只需将一个副本放在默认的可绘制目录中。
  • 如果您必须容纳非常大或者奇数的宽高比,请为这些创建特定的文件夹,使用此标志,例如。 swlonglarge
  • 无需画两次背景。因此,请使用<item name="android:windowBackground">@null</item>
  • 设置样式