-1

我有两台 Android 机器 - 三星 Galaxy Tab 和 HTC Flyer。他们都有 1024x600 的屏幕。然而,根据Context.getResources().getDisplayMetrics()方法的日志,Tab 的屏幕为 240dpi,而 Flyer 的屏幕为 160dpi。

我的问题是,我有一个TextView定义,并且根据那些 Android 文档,使用单位dp应该在不同的screen density(dpi). 但是我观察到,Flyer 中出现的文字大小明显小于 Tab 中的,使用起来sp也没有运气。我希望它们的尺寸相同。一般解决这个问题有什么线索吗?

提前致谢。

4

2 回答 2

1

好吧,报告的值显然是一个谎言。我想 Galaxy Tab 是 7 英寸型号。这意味着,根据报告的值,它的显示高度约为 4.2 英寸(1024 / 240 = 4.2 英寸),宽度约为 2.5 英寸。这意味着屏幕尺寸为 4.2x2.5 英寸,在这种情况下,对角线约为 4.9 英寸。是否正确 - 不,不是,它有 7 英寸显示屏。测量屏幕的侧面,你会得到正确的密度。因此,即使通过 Android 进行缩放,结果也会因为错误的密度测量而出错。

无论如何,问题的答案是:

不,没有办法绘制相同大小的字体、图像和其他任何东西。您需要习惯制造商的错误指标。错误的密度读数反映在所有其他比例上。因此,即使 mm/in 也无济于事。

还有一个建议——除非绝对必要,否则不要尝试在不同产品之间匹配尺寸。例如,如果你成功了,那么 Galaxy Tab 上的文本将与设备上的其他文本不成比例,并且会让你的应用看起来不合适。坚持Android textAppearanceSmall/Large等。

于 2011-06-13T10:04:00.407 回答
0

请尝试以下单位:

毫米

毫米 - 基于屏幕的物理尺寸。

英寸 - 基于屏幕的物理尺寸。

http://developer.android.com/guide/topics/resources/more-resources.html

于 2011-06-13T09:50:11.320 回答