43

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

4

6 回答 6

45

问题是它取决于密度。真的,它们不是很好的衡量标准来尝试比较。

  • 点数:一个 pica 有 12 个点,每英寸 6 个 pica,所以每英寸 72(更准确地说是 72.27)点。

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

  • Scaled Pixels:这些将等同于 DP 值,但会根据用户偏好进行缩放以变小或变大。

如果您以 72 dpi(Photoshop 默认 DPI 设置)进行设计,则 8pt 字体将等效于 8px,即 MDPI 为 8px,HDPI 为 12px,XHDPI 为 16px,或者更简单地为所有密度的 8dp。我不知道对不同的 SP 设置应用了多少缩放,所以你必须找出它,但基本上我只会给他们模型并让他们从那里适当地调整它的大小——他们肯定可以把它弄得很漂亮从视觉上关闭。

于 2012-11-15T20:19:50.357 回答
13

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

您不能将 pt 转换为 sp,就像 Flavio 所说的那样。但是,您可以大致将 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 桶值:26.666dp

您可以对 sp 使用相同的值,但请记住,这些值可能会因用户设置而增加/减少。

于 2013-06-05T13:35:21.373 回答
1

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

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

于 2014-11-03T12:21:22.500 回答
1

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

于 2012-11-15T19:07:59.460 回答
1

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

于 2012-11-15T19:11:39.403 回答
0

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

于 2015-12-09T23:08:33.667 回答