【发布时间】:2012-08-15 08:03:41
【问题描述】:
我目前在使用 Android 字体 Roboto 时遇到了奇怪的问题。起初,我在一个水平 LinearLayout 中有两个 TextView,垂直和水平居中。第一个 TextView 的字体设置为 Roboto-Black.ttf,第二个为 Roboto-Light.ttf。两者都设置为 textSize="12sp",但带有 Roboto-Light.ttf 的那个仅比 Roboto-Black.ttf TextView 高一个像素。但是当我设置 textSize="13sp" 时它并没有发生。因此,我创建了新的 Android 项目,以确保它不仅在一个应用程序中。结果几乎相同,但在这种情况下, textSize="12sp" 按预期工作,但 textSize="13sp" 没有。我已经制作了屏幕截图来显示问题。
12sp 按预期工作。顶部边缘对齐。
13sp 有这种奇怪的行为。
奇怪的是,只有当我尝试混合薄衬里和厚衬里变体时才会发生这种情况。当我制作一个 TextView Roboto-Bold.ttf 和第二个 Roboto-Black.ttf 时,结果很好。当我尝试 Roboto-Light.ttf 和 Roboto-Thin.ttf 时,它也能正常工作。
所以我也尝试在 Photoshop 中对此进行测试,这就是我发现的:
Roboto 系列的所有字体都相同,除了 Roboto-Light.ttf。如果需要,我还可以发布布局的源代码。
提前致谢。
PS:很抱歉提供链接,但由于声誉低(全新帐户),我无法发布图片。同样在最后一个链接中,我必须从“http”中删除“h”,因为它不允许我超过两个链接。
【问题讨论】:
-
我想您对此无能为力,只能尝试使用尺寸并使用 12.9sp 之类的更大尺寸。
-
感谢您的图片。无论如何,这不是最好的方法,因为我无法预测当那些 SP 被计算为像素时它会如何表现。我为 textSize 尝试了 18 和 19 像素(在我的 hdpi 设备上它等于 12sp),我得到了相同的错误结果。我的观点是,即使我使用 12.9sp,在更小(或更大)的屏幕上也可能存在相同的问题。