2011-08-05 73 views
0

我知道这个主题有很多问题,但我尝试搜索大量的“android dpi”帖子,并阅读在线文档,但没有找到我确切的问题。Android:维护图片资源大小

如果我想创建一个按钮(或任何图像资源),将占用所有设备屏幕上的相同空间 - 我该怎么做?

据我所知,Android有特定的屏幕尺寸和dpi的分辨率等,但我不太明白具体的图像应该在任何屏幕上看起来多大。

说,我有我的绘制和布局文件夹下面的设置(应用只有横向):

res/drawable-ldpi/button.png (120 dpi) 
res/drawable-mdpi/button.png (160 dpi) 
res/drawable-hdpi/button.png (240 dpi) 

res/layout-small/main.xml - button is set to 100dp 
res/layout-normal/main.xml - button is set to 100dp 
res/layout-large/main.xml - button is set to 100dp 

说我有一个按钮,我想成为100dp任何屏幕上。遵循3:4:6比例尺规则,似乎如果我有一个100px宽的mdpi密度的按钮资源,我应该为75px的ldpi密度制作另一个按钮,另一个用于150px的hdpi密度。那是对的吗?我是否在120dpi创建了75px按钮,在160dpi处是100px按钮,在240dpi处是150px按钮,然后在所有三个布局文件中只说android:layout_width =“100dp”?或者我可以在不同的dpi上制作全部三个按钮100px?

现在如果我有那个按钮9补丁。我是否必须在120dpi,160dpi和240dpi下创建三次按钮,所有这些都是100px大小?或者我只是在100px和160dpi下创建一个9修补按钮,并将其放置在mdpi可绘制文件夹中?

在线文档对我来说有点令人困惑,所以我正在寻找一个简单的答案。

这是Android版本1.6 +

感谢您的帮助(不适用于3.2等新的东西)......我只想要一个按钮占用同一空间3.7" 屏幕上为7 “屏幕,而不是模糊!

回答

0

你对此有何评论? Afaik,根据我的经验,在Photoshop中创建图像时不要更改dpi。我总是将自己的标准留在72我认为的标准。无论如何,如果您将其设置为一百万,我认为不重要。

您提到的px值对于l m和h是正确的。 虽然我会离开文件夹名称的mdpi限定符;如果在xhdpi设备上没有没有xhdpi限定符的可绘制文件夹,也没有没有限定符的文件夹,我不确定协议。

工作流程: 在75,100和150处创建图像。 将75放在ldpi文件夹中,100放在drawables文件夹中,没有限定符,150放在hdpi中。 让您的布局保持原样,并保持100dp。它们应该正确缩放。也就是说,如果您使用全分辨率,我认为您不需要指定图像大小。

解决我答复中的不准确问题的评论总是受欢迎的,即使是在线下也是如此。

+0

目前我在'drawable'中放置1个大小,在'drawable-hdpi'中放置2个大小 - 对于覆盖两端来说似乎是合理的。其余的是Android。 – amcc

+0

,它解决了屏幕密度的问题,但没有解决不同屏幕尺寸的问题 – oat

+0

@QuakiGabbar OP表示他们想要一个按钮在任何屏幕上都是100dp。在两个不同的设备上使用“占用相同的空间”这个术语是不明确的 - 它们是指内容应该是相同的物理尺寸,还是每个设备的屏幕空间应该相同? – ataulm