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

时间:2015-03-28 22:45:47

标签: android image performance responsive-design resize

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

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

当我堆叠它们时,LinearLayout运行缓慢。 使用RelaytiveLayout我必须以编程方式调整图像大小,这也是我认为“不太好”的解决方案。

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

他们将值-sw300dp的dimen-s设置为

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

并且值-sw480dp为

<dimen name="_10sdp">16.00dp</dimen>
对于不同的案例

等......

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您的解决方案似乎很好,就像常见解决方案一样,使用documentation中描述的文件夹会很好。 对于您的情况,作为更简单的解决方案,我建议不要单独使用苹果图像并将其放在背景的正方形中。您可以拥有一个图像:正方形的苹果,并将其放在任何您想要的背景上。苹果将​​始终在一个正方形中,您可以避免为每种配置创建尺寸的繁琐过程。