Android 布局 - 不同屏幕分辨率和相同密度的图像

Android layouts - images for the different screen resolutions and the same density

我想在也是图片的背景上显示一些图片。假设我的背景图像包含一个空方块,我想显示一个必须恰好出现在其中一个方块中的苹果图像。 我对苹果大小有疑问,因为背景会缩放并适合屏幕,但苹果图像对于不同分辨率和相同密度的设备保持不变。

假设我有两个分辨率为 240x320 和 480x800 的 ldpi 设备。当我将可绘制的 aple 文件保存在 drawable-ldpi 文件夹中,并使用 wrap_content 作为高度和宽度(或固定的 dp 值)时,这两个设备绘制的苹果大小相同,如文档中所述。

当我堆叠它们时,LinearLayout 运行缓慢。 使用 RelaytiveLayout 我必须以编程方式调整图像大小,我猜这也是 "not so good" 解决方案。

我在这里 https://github.com/intuit/sdp 找到了映射 dp-s 的解决方案。

他们将 values-sw300dp 的维度设置为

<dimen name="_10sdp">10.00dp</dimen>

values-sw480dp 为

<dimen name="_10sdp">16.00dp</dimen>

依此类推...

因此,当我将 apple 的 with 设置为 _10sdp 时,这意味着我的 2 个具有相同密度的设备的不同 dp-s 并解决了我的问题。这对我来说是一个很好的解决方案吗? 还有其他简单的方法吗?

这确实是推荐的解决方案,正如您在 iosched github repository 中看到的那样,至少根据 Google,这是了解某事是否是所需的常见做法的一般良好来源,因为我知道他们花费大量时间创建此代码以反映最佳实践并获取新 API

您的解决方案看起来不错,就像常见的解决方案一样,最好使用 documentation 中描述的文件夹。 对于您的情况,作为更简单的解决方案,我建议不要单独使用苹果图像并将其放在背景的正方形中。你可以有一个图像:正方形的苹果,并将它放在背景上任何你想要的地方。一个苹果总是在一个正方形里,你可以避免为每个配置创建维度的烦人过程。