如何将pt转换为sp?

时间:2012-11-15 19:05:23

标签: android units-of-measurement psd

我是一名视觉设计师,从事Android设计工作,我正在尝试为我们的工程师指定我的PSD文件。我似乎无法找到任何有关在任何Android文档中将点大小转换为SP的文档(只是SP应该用于类型)。

6 个答案:

答案 0 :(得分:43)

问题在于它取决于密度。实际上,他们并不是一个很好的测量方法来尝试比较。

  • 积分:异食癖中有12个点,每英寸6个皮卡,因此每英寸72个点(更准确地说是72.27个)。

  • 与设备无关的像素(DP):这些将等于MDPI显示的像素大小,HDPI显示的像素大小的1.5倍,以及XHDPI显示的像素大小的2倍。 (例如12dp = 12px MDPI,18px HDPI,24px XHDPI)。

  • 缩放像素:这些将等同于DP值,但会根据用户偏好缩放为更小或更大。

如果您的设计是72 dpi(Photoshop默认DPI设置),8pt字体相当于8px,MDPI为8px,HDPI为12px,XHDPI为16px,或者所有密度为8dp 。我不知道有多少缩放应用于不同的SP设置,所以你必须将它捕获出去,但基本上我只是给它们模型并让它们从那里适当地调整它们 - 当然它们可以让它漂亮从中直观地看。

答案 1 :(得分:11)

与dp(和减去用户文本大小因子的sp)相反,pt几乎具有完全相同的物理测量。 Dp或多或少是粗略近似值,因为它在宽dpi范围内使用相同的因子。

你不能将pt转换成sp,就像弗拉维奥所说的那样。然而,您可以将pt粗略地转换为dp(在极端情况下为+/- 30%,但至少期望为+/- 10%)。

使用dpi存储桶(ldp = 120,mdpi = 160,hdpi = 240,xhdpi = 320),最通用的转换因子为 x0.45 (= 72/120 * 0.75 = 72 / 160 * 1 = 72/240 * 1,5 = 72/320 * 2)如果使用精确的dpi桶值。

更准确的因素:

  • mdpi(比例因子:1.0)10.1“WXGA屏幕(149dpi) 0.483076923 (= 72/149 * 1.0)
  • hdpi(比例因子:1.5)Nexus 7(216dpi) 0.5 (= 72/216 * 1.5)
  • xhdpi(比例因子:2.0)Nexus 10(300dpi) 0.48 (= 72/300 * 2)

所以12 pt将会......

  • 10.1“WXGA:24.84dp
  • Nexus 7:24 dp
  • Nexus 10:25dp
  • dpi bucket值:26.666dp

您可以对sp使用相同的值,但请记住,这些值可以通过用户设置进行/减少。

答案 2 :(得分:1)

像素和sp之间没有直接映射,因为sps是动态设置的,因为用户在系统设置中更改了设备字体大小。用户可能希望查看更小或更大尺寸的所有应用程序字体。这是操作系统提供的辅助功能。

答案 3 :(得分:1)

^弗拉维奥说的话。但请查看Android开发者网站上的显示指标类概述。你可能会在这里找到你需要的东西...... http://developer.android.com/reference/android/util/DisplayMetrics.html#

答案 4 :(得分:1)

这是一个很好的工具,可以帮助您在各种测量之间进行转换 - 输入您所知道的信息并计算其余信息!

http://angrytools.com/android/pixelcalc/

答案 5 :(得分:0)

每英寸72点,每英寸160点(在设备设置中标准字体)。这意味着每72分钟有160sp。 160sp / 72pts简化为20/9。因此,当将pts转换为sp或dp时,请使用 pts * 20/9 。正如其他人已经提到的那样,sp确实因用户的设置而异,所以如果您不希望文本大小随设备设置而变化,请使用dp。