两台Android机器在相同屏幕分辨率但不同dpi下文本大小不同

发布于 2024-11-15 01:26:59 字数 349 浏览 5 评论 0原文

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

我的问题是,我定义了一个 TextView,根据那些 Android 文档,使用 dp 单位应该在不同的屏幕密度(dpi)下给出相同的物理尺寸)。但我观察到,Flyer 中出现的文本大小明显小于 Tab 中的文本大小,使用 sp 也没有运气。我希望它们大小相同。一般来说解决这个问题有什么线索吗?

提前致谢。

I have two Android machines - Samsung Galaxy Tab and HTC Flyer. They both have 1024x600 screen. However Tab has 240dpi screen while Flyer has 160dpi according to the log from Context.getResources().getDisplayMetrics() method.

My problem is that, I have a TextView defined, and according to those Android document, using unit of dp should give same physical size under different screen density(dpi). But what I observed is that, the text size appeared in Flyer is obviously smaller than that in Tab, no luck in using sp too. I want them to be in same size. Any clue in solving this problem in general?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倾其所爱 2024-11-22 01:26:59

好吧,报告的数值显然是谎言。我认为 Galaxy Tab 是 7 英寸型号。这意味着,根据报告的值,它的显示高度约为 4.2 英寸(1024 / 240 = 4.2 英寸),宽度约为 2.5 英寸。这意味着屏幕尺寸为 4.2x2.5 英寸,在本例中对角线约为 4.9 英寸。这是正确的吗?不,不是,它有 7 英寸显示屏。测量屏幕的两侧,您将获得正确的密度。因此,即使通过 Android 进行缩放,由于密度测量错误,结果也会是错误的。

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

不,无法绘制相同大小的字体、图像等。您需要习惯制造商提供的错误指标。错误的密度读数会影响所有其他缩放比例。因此,即使毫米/英寸也无济于事。

温馨提示:除非绝对必要,否则不要尝试匹配不同产品之间的尺寸。如果成功,那么 Galaxy Tab 上的文本将与设备上的其他文本看起来不成比例,并使您的应用程序看起来格格不入。坚持 Android textAppearanceSmall/Large 等。

Well, the reported values are clearly a lie. I suppose the Galaxy Tab is the 7in model. This means that, based on the reported values, it has about 4.2in display height (1024 / 240 = 4.2in) and about 2.5in width. This means that the screen size would be 4.2x2.5 in - and in this case the diagonal would be about 4.9in. Is it correct - no it isn't, it has 7in display. Measure the sides of the screen and you would get the correct density. So, even when scaled by Android the result will be wrong because of the false density measurement.

Anyway, the answer of the question is:

No, no way to draw same-sized fonts, images and whatever. You need to get used to false metrics from the manufacturer. A false density reading reflects on all other scaling. Thus even mm/in would not help.

And one advise - don't try to match sizes between different products, unless absolutely necessary. If you succeed, then the text on the Galaxy Tab, for example, will look disproportional in regards to the other text on the device and will make your app look out-of-place. Stick to the Android textAppearanceSmall/Large, etc.

无敌元气妹 2024-11-22 01:26:59

请尝试以下单位:

毫米

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

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

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

Please try the following units:

mm

Millimeters - based on the physical size of the screen.

in

Inches - based on the physical size of the screen.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文