android - 将 iOS UIFont 中的字体大小(以点为单位)转换为 Android TextView 的大小(sp 或 dp)?

标签 android ios android-layout font-size

我正在寻找一种方法将 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/

相关文章:

android - 如何测试 NFC 应用程序?

ios - 如何在 iOS 中使用 NSString 避免过多的 if-else 语句?

android - TextView 的文字对齐方式太可怕了!如何解决它?

android - ActionBarSherlock 和 HoloEverywhere 库之间的冲突

java - Android - 在运行时从数组添加多个 fragment

android - android中的使用统计访问权限

iphone - 对 <UINavigationController : 0xa98e050> 的开始/结束外观转换的不平衡调用

ios - 防止 Xcode 每次都构建子项目

android - 如何向 Android Activity 添加底部菜单

android - 如何居中线性布局