Android:如何处理具有相同报告dpi的不同物理平板电脑?

时间:2014-06-16 08:36:18

标签: java android android-layout

我希望我在这里真傻。

对于一个应用程序,我正在尝试创建两个单独的布局,以便在两个不同的物理设备上很好地扩展文本,而无需在我的代码中生成大量条件。 我遇到问题的两个具体设备是:

三星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英寸平板电脑更大。事实上更大的文本变得不合理。 (好像你打开辅助功能选项而没有实际使用它们)

1 个答案:

答案 0 :(得分:0)

如果确实需要,您可以手动计算并手动扩充布局。

这是怎么回事,

基于DisplayMetrics

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));