android - Android 中字体的物理大小(以磅为单位)

标签 android text fonts size points

我有两台设备 - HTC Tattoo 和索尼爱立信 Xperia X10。一个有 145 DPI,另一个有 245 DPI。

当我以磅为单位指定 TextView 的字体大小时,如下所示:

textView.setTextSize(TypedValue.COMPLEX_UNIT_PT, 6.5f);

我在这两种设备上得到不同物理尺寸的文本。在 245 DPI 下,文本几乎不可读。

现在,“pt”大小应该是物理的。即,在我的测试中,两个文本 block 应该具有相同物理高度的字母。事实并非如此。

这里有什么问题吗?

感谢您的帮助, 尤里。

最佳答案

pt单位是点,不会按密度缩放。对于您想要的非文本 dip (或 dp ),它们是与密度无关的像素。这些将根据密度缩放。对于文本,您需要 <a href="http://developer.android.com/reference/android/util/TypedValue.html#COMPLEX_UNIT_SP" rel="noreferrer noopener nofollow">sp</a> , 它将根据密度缩放,也根据用户的首选字体大小缩放。

这里有一些关于它的信息,也散布在 Android 文档的其他地方。

http://developer.android.com/guide/practices/screens_support.html#screen-independence

更新:这里是每个维度单位的描述,正如 Yuri 正确指出的那样,这确实表明 pt在物理屏幕上应始终为 1/72 英寸。它似乎不是那样工作的,答案就是使用 dpsp - 如果您想向用户显示点之类的东西,只需做一些数学运算(dp 在 160dpi 屏幕上可以假设为 1px,即 1/160 英寸)。

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

关于android - Android 中字体的物理大小(以磅为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3396007/

相关文章:

android - 试图杀死一个应用程序

javascript - 弧形文本中字符串字符之间的间距不太正确。 (HTML Canvas )

java - 从行数未知的文本创建图像

html - 如何在标题中添加自定义标签以使 WordPress 中的字体变大?

fonts - 在yii2中的哪里放字体?

android - 从 GET 获取状态码 400

javascript - 为什么 React Native 的 .flowconfig 会忽略 .android.js 文件?

c# - 使用 iTextSharp 将 PDF 文件中使用的字体保存到文件

java - 从我的应用程序拍摄的照片,保存在正确的文件夹中,但在图库中看不到

c++ - C++中文本编辑器的链接列表