我正在寻找一种方法将 UIFont 的大小转换为 Android TextView 的 textSize 属性,例如:
[UIFont fontWithName:@"HelveticaNeue" size:14];
iOS 开发文档将 UIFont 大小属性的单位指定为点,但在 Android 的 TextView 上使用 px、dp、sp、in 或 mm。
在 Android 上我应该写什么:
<TextView android:textSize="?" />
谢谢!
最佳答案
如果您检查 Android Developers site它将为您提供适合 TextView 的格式和大小单位。您有:px(像素)、dp(密度无关像素)、sp(基于首选字体大小的缩放像素)、in(英寸)或 mm(毫米)。
以磅为单位定义的字体实际上是以物理英寸为单位定义的。这种转换是最直接的,也可能是最糟糕的方法,但是您可以通过简单地将磅值乘以磅值与物理英寸的比率来转换为英寸:1/72
为了将磅值转换为像素,您可以使用此站点提供的计算:https://web.archive.org/web/20120415064052/http://www.emdpi.com/screendpi.html
有些信息是特定于 Windows 的,但基本方法也适用于 Android,前提是您可以识别屏幕 dpi。此方法将为您提供以像素 (px) 为单位的适当值,该值对 TextView 字体大小有效。
请注意,TextView 建议使用缩放像素 (sp) 与 TextView 一起使用,因此您可能需要做一些额外的工作才能以编程方式将字体缩放到屏幕大小。
关于android - 将 iOS UIFont 中的字体大小(以点为单位)转换为 Android TextView 的大小(sp 或 dp)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5974417/