我正在制作一个在屏幕上有14个图标的布局。我为所有图标创建了 9-patch 图像,并将它们添加到相应的文件夹中: MDPI,HDPI,XHDPI,XXHDPI,XXXHDPI ,它工作正常。 我在一些设备上进行了测试,因为我们知道添加并选择图像以相应地显示“屏幕密度”而不是“屏幕尺寸”。
我使用 ScreenLayout_Size_Mask 来获取实际的屏幕尺寸类别。(ScreenLayout_Size_SMALL,ScreenLayout_Size_NORMAL,ScreenLayout_Size_LARGE,ScreenLayout_Size_XLARGE)我正在检索屏幕的屏幕尺寸和密度。对于ref:Link
对于设备:
Nexus7(1200 x 1920 px~323 ppi):
ScreenLayout_Size_LARGE和密度是XHIGH
三星Galaxy Grand-2(720 x 1280 px~280 ppi):
ScreenLayout_Size_NORMAL和密度是 XHIGH。
虽然他们的“屏幕大小”仍然存在很大差异,但他们的 dpi是相同的(XHIGH),因此两个设备选择的图标图像仅具有相同的密度(XHDPI),实际上不应该可以这么做,因为在小屏幕设备(Galaxy Grand-2)上图标会比较大,但看起来很麻烦。
根据android标准,我们只能为多个屏幕密度添加图像资源,而不是根据屏幕尺寸。
我得到的一个选项是设置ImageView大小与屏幕大小的比例,但布局中有14个图标,如何为所有ImageView获得适当的比例大小?
我发现的其他方法是以编程方式执行此操作:
使用ScreenLayout_Size_Mask获取实际屏幕尺寸
为(小,普通,大,xlarge)添加不同名称的不同图像。
有没有正确的方法呢?任何帮助将受到高度赞赏。