我希望我在这里真傻。
对于一个应用程序,我正在尝试创建两个单独的布局,以便在两个不同的物理设备上很好地扩展文本,而无需在我的代码中生成大量条件。 我遇到问题的两个具体设备是:
三星Galaxy TabPro
8.4“平板电脑
1600x2560像素(英尺)| 800x1255 DP | 800dp | 320dpi | 2.0密度| 1600x2560像素(普通)
Samsung Nexus 10
10.1“平板电脑
2560x1600像素(实质)| 1280x727 DP | 800dp | 320dpi | 2.0密度| 2560x1504像素(普通)
如何区分布局文件夹中的这两个设备?它们具有相同的dpi组,相同的密度修改器,相同的dp组,相同的分辨率,相同的一切。除了一个比另一个大2英寸。
编辑: 添加有关确切问题的信息(为什么我要区分)。带有某些文本化SP的文本在10英寸平板电脑上显示出比8英寸平板电脑更大。事实上更大的文本变得不合理。 (好像你打开辅助功能选项而没有实际使用它们)
答案 0 :(得分:0)
如果确实需要,您可以手动计算并手动扩充布局。
这是怎么回事,
xdpi X维度中每英寸屏幕的确切物理像素。
ydpi Y维度中每英寸屏幕的确切物理像素。
heightPixels 显示的绝对高度,以像素为单位。
widthPixels 显示的绝对宽度(以像素为单位)。
这是粗略的代码
heightInInches = getResources().getDisplayMetrics().heightPixels
/ getResources().getDisplayMetrics().xdpi;
widthInInches = getResources().getDisplayMetrics().widthPixels
/getResources().getDisplayMetrics().ydpi;
// formula for finding the diagonal of triangle
diagonalScreenSize = Math.sqrt((heightInInches*heightInInches)
+ (widthInInches*widthInInches));