【问题标题】:Is there any way to create one image(Instead of 4 with different resolutions ldpi,mdpi,hdpi and xhdpi) and use for all the android device resolutions?有没有办法创建一个图像(而不是 4 个具有不同分辨率 ldpi、mdpi、hdpi 和 xhdpi)并用于所有 android 设备分辨率?
【发布时间】:2012-09-10 05:39:28
【问题描述】:

有什么方法可以创建一个图像(而不是 4 个具有不同分辨率 ldpi、mdpi、hdpi 和 xhdpi)并将其用于所有 android 设备分辨率?

【问题讨论】:

  • 您可能还会发现 drawables-nodpi 很有用。经常被忽视...
  • 对不起,我只是有点好奇。你为什么想要或需要它?您是否受到应用大小的限制?
  • 不受应用大小限制,但想根据设备分辨率查看图片。

标签: android


【解决方案1】:

您可以使用一张图片,越大的图片质量越好,android 会自动调整它们的大小,但是您提供不同尺寸的原因是为了节省时间和内存。您不希望每次加载应用程序时都这样做,因为它会减慢速度,您可能不会注意到它,但对于较慢的设备可能会如此。

由于 mdpi 或中等密度是所有其他设备的基础,因此我将创建其中一个并将其用于所有设备,但它在所有设备上可能看起来并不好。

简而言之,如果您创建了所有尺寸,您的应用程序会更好。

如果需要,您还可以查看 9 个补丁。

【讨论】:

  • 感谢两位的建议。我已经尝试将 mdpi 用于所有密度,但它扰乱了布局。无论如何,需要尝试 9 个补丁图像。
【解决方案2】:

只需创建一个(例如中密度/mdpi)并忽略其他。如果需要,Android 将使用最接近的值并对其进行缩放。

如果您想要来自documentation 的报价:

默认情况下,Android 会缩放位图可绘制对象(.png、.jpg 和 .gif 文件)和九补丁可绘制对象(.9.png 文件),以便它们在每台设备上以适当的物理尺寸呈现。例如,如果您的应用程序仅为基线、中等屏幕密度 (mdpi) 提供位图可绘制对象,则系统在高密度屏幕上时会放大它们,而在低密度屏幕上时会缩小它们。这种缩放会导致位图中出现伪影。为确保您的位图看起来最好,您应该为不同的屏幕密度添加不同分辨率的替代版本。

可用于密度特定资源的配置限定符有 ldpi(低)、mdpi(中)、hdpi(高)和 xhdpi(超高)。例如,高密度屏幕的位图应该放在 drawable-hdpi/ 中。

【讨论】:

  • 感谢两位的建议。我已经尝试将 mdpi 用于所有密度,但它扰乱了布局。无论如何,需要尝试 9 个补丁图像。
  • 听起来您可能必须以不同的方式定义控件的尺寸。例如,您使用的是 px 还是 dp?
  • 我正在使用 dp。但是,例如指定 30dp 和 40dp 不感兴趣。想要将内容包装成一个图像视图,以便在所有屏幕上看起来都很好。
  • 如果可能的话,将有助于您提供一些实际问题/布局的图像。即使您用一些虚拟的东西替换您的图像/文本,也不会破坏任何 NDA 或其他任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多