【发布时间】:2014-08-06 00:48:23
【问题描述】:
我希望我只是在这里很傻。
对于一个应用程序,我尝试创建 2 个单独的布局,以便在两个不同的物理设备上很好地缩放文本,而不必在我的代码中生成大量条件。
我遇到问题的两个特定设备是:
三星 Galaxy TabPro
8.4 英寸平板电脑
1600x2560 像素 (真实) | 800x1255 DP | 800dp | 320dpi | 2.0密度 | 1600x2560 像素(普通)
三星 Nexus 10
10.1" 平板电脑
2560x1600 像素 (真实) | 1280x727 DP | 800dp | 320dpi | 2.0密度 | 2560x1504 像素(普通)
如何区分布局文件夹中的这两种设备?它们具有相同的 dpi 组、相同的密度修改器、相同的 dp 组、相同的分辨率、相同的一切。除了一个比另一个大 2 英寸。
编辑: 添加有关确切问题的信息(我为什么要区分)。与 8 英寸平板电脑相比,具有特定 textsize SP 的文本在 10 英寸平板电脑上显示得更大。实际上要大得多,以至于文本变得难看。 (就好像您在没有实际打开的情况下打开了辅助功能选项)
【问题讨论】:
-
鉴于它们具有相同的分辨率和 DPI,为什么需要区分它们?您是否有可能在某处使用绝对布局?如果可以使用相对布局/网格布局/线性布局,或许问题就迎刃而解了?
-
原因是(我假设)由于屏幕尺寸的物理差异,实际文本的缩放比例不同。在 Nexus 10 上,文本看起来是 TabPro 的两倍大,非常难看。编辑:此外,所有布局都是线性的或相对的。没有使用绝对布局。
-
你是如何设置字体大小的?您是否为字体使用与比例无关的像素(“sp”)?
-
是的,所有文本元素都使用 sp 作为 textsize 属性。 (但由于特定的 sp 数量因设备而异,因此我使用单独的布局文件夹,其中包含适用于手机大小的设备和平板电脑的自定义 sp 值,以便该应用在所有设备上都有大小合适的文本。)
-
@Michael 我感觉它实际上可能与以编程方式获得的 DP/DPI/密度/分辨率值不需要对应于设备的实际物理尺寸这一事实有关。据我所知,这与此无关。
标签: java android android-layout