我正在开发一个屏幕上有 14 个图标的布局。我为所有图标创建了9 个补丁图像并将它们添加到相应的文件夹中:MDPI、HDPI、XHDPI、XXHDPI、XXXHDPI,它工作正常。我在一些设备上进行了测试,因为我们知道图像被添加并选择相应地显示"Screen Density" 而不是 "Screen Size"。
我使用ScreenLayout_Size_Mask来获取实际的屏幕尺寸类别。(ScreenLayout_Size_SMALL、ScreenLayout_Size_NORMAL、ScreenLayout_Size_LARGE、ScreenLayout_Size_XLARGE)我正在检索屏幕的屏幕尺寸和密度。参考:链接
对于设备:
Nexus7(1200 x 1920 像素 ~323 ppi):
ScreenLayout_Size_LARGE 和 Density 是 XHIGH
三星 Galaxy Grand-2(720 x 1280 像素 ~280 ppi):
ScreenLayout_Size_NORMAL 和密度是 XHIGH。
尽管它们的“屏幕尺寸”存在很大差异,但它们的dpi 仍然相同(XHIGH),因此两个设备的选定图标图像仅具有相同的密度(XHDPI),实际上不应该这样做,因为图标会膨胀得更大在看起来凌乱的小屏幕设备(Galaxy Grand-2)上尺寸相对较大。
根据android标准,我们只能为多个屏幕密度添加图像资源,而不是根据屏幕大小。
我得到的一个选项是设置 ImageView 大小与屏幕大小的比例,但是布局中有 14 个图标,我怎样才能为所有 ImageViews 获得正确的比例大小?
我发现的其他方法是像这样以编程方式进行:
使用 ScreenLayout_Size_Mask 获取实际屏幕尺寸
为(小、正常、大、超大)添加不同名称的不同图像。
有什么合适的方法吗?任何帮助将不胜感激。