【问题标题】:Where to store images in Android drawables folder?Android drawables 文件夹中的图像存储在哪里?
【发布时间】:2013-04-04 11:27:13
【问题描述】:

我正在开发应支持 2.1 到最新 Android OS (4.2) 版本的 Android 应用程序。目前我的图片库模块中显示的图片很少。 我需要在所有支持从 2.1 到 4.2(最新)的操作系统的设备(智能手机和平板电脑)上支持我的应用。

每张图片的大小大致为 368X387,每张 50 KB,PNG 类型

我的工作区 res 包含以下可绘制文件夹:

drawable-hdpi
drawable-ldpi
drawable-mdpi
drawable-xdpi

我有些困惑

  1. 我应该将图像存储在哪个文件夹中,这有什么关系?

  2. 我需要为不同类型的设备提供不同分辨率的图像吗?

谢谢。

【问题讨论】:

标签: android image android-drawable hdpi mdpi


【解决方案1】:

您只能将图像存储在 1 个文件夹中,但是, 例如,您的设备是 mdpi .. 它在他身上会很好看,但是如果您在 ldpi 上运行您的应用程序,android 会自动缩放您的图像,并且看起来很难看(低质量)。所以是的,你需要为不同类型的设备提供不同分辨率的图像。 所以 mdpi 分辨率图像转到 drawable-mdpi 所以 hdpi 分辨率的图像去 drawable-hdpi etcc..

这是我在互联网上找到的一些关于屏幕尺寸的列表,也许你会发现它有帮助:

Low density Small screens QVGA 240x320 (120dpi):

layout-small-ldpi (240x320)  
layout-small-land-ldpi (320x240)

Low density Normal screens WVGA400 240x400 (x432) (120dpi):

layout-ldpi  (240 x 400 )
layout-land-ldpi  (400 x 240 )

Medium density Normal screens HVGA 320x480 (160dpi):

layout-mdpi (320 x 480 )
layout-land-mdpi (480 x 320 )

Medium density Large screens HVGA 320x480 (160dpi):

layout-large-mdpi (320 x 480 )
layout-large-land-mdpi (480 x 320)

Galaxy Tab ( 240 dpi ):

layout-large  (600 x 1024) 
layout-large-land  (1024 x 600)

High density Normal screens WVGA800 480x800 (x854) (240 dpi):

layout-hdpi (480 x 800)
layout-land-hdpi (800 x 480)

Xoom (medium density large but 1280x800 res) (160 dpi):

layout-xlarge (800 x 1280)
layout-xlarge-land (1280 x 800)

另外,最好阅读有关支持不同类型屏幕的官方文档网站。

【讨论】:

  • 知道如何计算 dpi 吗?我有图像大小和 x、y 坐标。
  • 如果您想在 android 上以正确的方式从可绘制文件夹中加载图像而不损失其质量,您必须这样做。
  • 阅读这个页面,你在这里拥有一切developer.android.com/guide/practices/…
  • 这些数值的度量单位是像素吧?
  • @zhelon 是的,这些值以像素为单位。
【解决方案2】:

资源文件夹中有四个文件夹 1-drawable-hdpi 2-drawable-ldpi 3-drawable-mdpi 4-drawable-xdpi

要声明您希望用于不同屏幕的不同布局和位图,您必须将这些替代资源放在单独的目录/文件夹中。这意味着如果您为 xhdpi 设备生成 200x200 的图像,您应该为 hdpi 生成 150x150、mdpi 为 100x100 和 ldpi 设备为 75x75 的相同资源。

然后,将文件放在适当的可绘制资源目录中:根据您的需要

【讨论】:

    【解决方案3】:

    如果您想为所有类型的屏幕使用相同的图像,那么您可以创建一个名为“drawable”的其他文件夹并将所有图像放在该文件夹中。它将作为默认可绘制对象工作。

    但如果您想提高所有分辨率的图像质量。那么您需要所有 4 种类型的图像,然后将它们放在具有相同图像名称的各自文件夹中。您还可以为每个分辨率制作不同的 XML。

    【讨论】:

      【解决方案4】:

      看到这个http://developer.android.com/training/multiscreen/screendensities.html

      您可以将特定图像放在所有文件夹中。

      drawable-hdpi
                   ---->img.png
      drawable-ldpi
                   ---->img.png
      drawable-mdpi
      
                   ---->img.png
      drawable-xdpi
      
                ---->img.png
      

      这完全取决于你的操作系统。它会根据设备分辨率默认采用。

      【讨论】:

        【解决方案5】:

        在 android 中,“Res”文件夹只不过是资源文件夹。在这个 res 文件夹中,我们还有其他子文件夹,但为了存储图像,我们有四种类型的文件夹名称被称为: 可绘制的 hdpi 用于高密度屏幕,分辨率为 480*800
        可绘制的 ldpi 适用于低密度屏幕,分辨率为 240*320
        可绘制的 mdpi 适用于中密度屏幕,分辨率为 320*480
        可绘制的 xdpi Xtra密度屏幕,分辨率为640*960

        如果您想为多个屏幕匹配图像,我的建议是使用

        九个补丁图像而不是 .png 和 .bmp 用于创建九个补丁图像 http://developer.android.com/tools/help/draw9patch.html

        【讨论】:

          猜你喜欢
          • 2015-03-23
          • 1970-01-01
          • 2013-06-13
          • 2012-10-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-05
          • 2016-11-06
          相关资源
          最近更新 更多