我有两台Android机器 - 三星Galaxy Tab和HTC Flyer。它们都有1024x600的屏幕。但是,根据Context.getResources().getDisplayMetrics()
方法的日志,Tab具有240dpi屏幕,而Flyer具有160dpi。
我的问题在于,我定义了TextView
,根据这些Android文档,使用dp
的单位应该在不同的screen density(dpi)
下提供相同的物理尺寸。但我观察到的是,Flyer中显示的文本大小明显小于Tab中的文本大小,使用sp
也没有运气。我希望它们的大小相同。解决这个问题的任何线索一般吗?
提前致谢。
答案 0 :(得分:1)
嗯,报道的价值显然是谎言。我想Galaxy Tab是7in型号。这意味着,根据报告的值,它的显示高度约为4.2(1024/240 = 4.2in),宽度约为2.5in。这意味着屏幕尺寸为4.2x2.5英寸 - 在这种情况下,对角线将约为4.9英寸。这是正确的 - 不,不是,它有7英寸显示。测量屏幕的两侧,您将获得正确的密度。因此,即使按Android进行缩放,由于虚假密度测量,结果也会出错。
无论如何,问题的答案是:
不,无法绘制相同大小的字体,图像等等。您需要习惯制造商的错误指标。虚假密度读数反映所有其他缩放。因此,即使mm / in也无济于事。
并建议 - 除非绝对必要,否则不要尝试匹配不同产品之间的尺寸。如果你成功了,那么Galaxy Tab上的文字对于设备上的其他文字看起来会不成比例,并会让你的应用看起来不合适。坚持Android textAppearanceSmall / Large等
答案 1 :(得分:0)
请尝试以下单位:
毫米
毫米 - 基于屏幕的物理尺寸。
在
英寸 - 基于屏幕的物理尺寸。
http://developer.android.com/guide/topics/resources/more-resources.html