Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:如何使用相同的dpi处理不同的物理平板电脑?_Java_Android_Android Layout - Fatal编程技术网

Java Android:如何使用相同的dpi处理不同的物理平板电脑?

Java Android:如何使用相同的dpi处理不同的物理平板电脑?,java,android,android-layout,Java,Android,Android Layout,我希望我只是在这里傻了 对于一个应用程序,我试图创建两个独立的布局,以便在两个不同的物理设备上很好地缩放文本,而不必在代码中生成大量条件。 我遇到问题的两个具体设备是: 三星Galaxy TabPro 8.4英寸片剂 1600x256px(实型)| 800x1255 DP | 800dp | 320dpi | 2.0密度| 1600x256px(普通型) 三星Nexus 10 10.1英寸片剂 2560x1600像素(真实)| 1280x727 DP | 800dp | 320dpi | 2.0

我希望我只是在这里傻了

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

三星Galaxy TabPro
8.4英寸片剂
1600x256px(实型)| 800x1255 DP | 800dp | 320dpi | 2.0密度| 1600x256px(普通型)

三星Nexus 10
10.1英寸片剂
2560x1600像素(真实)| 1280x727 DP | 800dp | 320dpi | 2.0密度| 2560x1504像素(正常)

如何在layouts文件夹中区分这两个设备?他们有相同的dpi组,相同的密度调整剂,相同的dp组,相同的分辨率,相同的一切。除了一个比另一个大2英寸

编辑:
添加有关确切问题的信息(为什么我要区分)。与8英寸的平板电脑相比,10英寸平板电脑上显示的特定文本大小SP的文本更大。事实上,这本书的篇幅太大了,以至于变得不整洁。(好像您在没有实际打开辅助功能选项的情况下打开了辅助功能选项)

如果确实需要,您可以进行一些手动计算并手动为布局充气

这里是如何

基于

xdpiX维屏幕每英寸的精确物理像素

ydpiY维度中屏幕每英寸的精确物理像素

高度像素显示器的绝对高度(以像素为单位)

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

既然它们具有相同的分辨率和DPI,为什么需要区分它们?您是否可能在某处使用绝对布局?如果你可以使用相对布局/网格布局/线性布局,也许问题会消失?原因是(我假设)由于屏幕大小的物理差异,实际文本的缩放方式不同。在Nexus10上,文本看起来是TabPro的两倍,TabPro非常难看。编辑:此外,所有布局要么是线性的,要么是相对的。没有使用绝对布局。如何设置字体大小?字体是否使用缩放独立像素(“sp”)?是的,所有文本元素都使用sp作为textsize属性。(但由于不同设备的特定sp量看起来不同,我使用单独的布局文件夹,其中包含手机大小的设备和平板电脑的自定义sp值,因此应用程序在所有设备上都有大小合适的文本。)@Michael I觉得这实际上可能与以下事实有关:通过编程获得的DP/DPI/密度/分辨率值不需要与设备的实际物理尺寸相对应。据我所知,这件事没什么可做的。