我知道关于这个话题有很多问题,但我尝试搜索大量的“android dpi”帖子并阅读在线文档,但没有找到我的确切问题。
如果我想创建一个按钮(或任何图像资源),它将在所有设备的屏幕上占用相同的空间 - 我该怎么做?
据我所知,Android有特定的屏幕尺寸和dpi等等,但我不太明白在任何屏幕上看起来应该有多大的特定图像。
假设我的drawable和layout文件夹有以下设置(应用程序只是横向):
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密度,我应该为ldpi密度设置75px的另一个按钮,并且为hdpi密度设置为150px。那是对的吗?我是在120dpi创建75px按钮,在160dpi创建100px按钮,在240dpi创建150px按钮然后在所有三个布局文件中创建android:layout_width =“100dp”?或者我可以在不同的dpi上制作所有三个按钮100px?
现在如果我修补了那个按钮9怎么办?我是否必须在120dpi,160dpi和240dpi下创建三次按钮,所有这些按钮都是100px?或者我只是在100px和160dpi下创建一个9个修补按钮并将其放在mdpi drawable文件夹中?
在线文档对我来说有点混乱,所以我正在寻找一个简单的答案。
适用于Android版本1.6+(不是3.2等新功能)
感谢您的帮助......我只想要一个按钮占用3.7英寸屏幕上相同的空间作为7英寸屏幕而不是模糊不清!
答案 0 :(得分:0)
你对此排序了吗? Afaik,根据我的经验,在Photoshop中创建图像时不要改变dpi。我总是把我的标准留给我,我想是72。无论如何,如果你把它设置为百万,我认为这并不重要。
您提到的px值对于l m和h是正确的。 我会将mdpi限定符从文件夹名称中删除;我不确定协议是否在xhdpi设备上没有没有xhdpi限定符的可绘制文件夹,也没有没有限定符的文件夹。
工作流: 在75,100和150处创建图像。 将75放在ldpi文件夹中,将100放在没有限定符的drawables文件夹中,将150放在hdpi中。 使用100dp保留现在的布局。它们应该正确缩放。也就是说,如果您使用的是全分辨率,我认为您不需要指定图像大小。
我总是欢迎在我的回答中解决不准确的评论,即使是几年之后。