我是一名视觉设计师,从事 android 设计,我正在尝试为我们的工程师指定我的 PSD 文件。我似乎在任何 Android 文档中都找不到关于将点大小转换为 SP 类型的任何文档。(只是SP 应该用于类型)。
6 回答
问题是它取决于密度。真的,它们不是很好的衡量标准来尝试比较。
点数:一个 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 设置应用了多少缩放,所以你必须找出它,但基本上我只会给他们模型并让他们从那里适当地调整它的大小——他们肯定可以把它弄得很漂亮从视觉上关闭。
与 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 使用相同的值,但请记住,这些值可能会因用户设置而增加/减少。
这是一个很好的工具,可以帮助在各种测量之间进行转换 - 输入您所知道的,它会计算其余的!
像素和 sp 之间没有直接映射,因为 sps 是随着用户在系统设置中更改设备字体大小而动态设置的。用户可能希望以更小或更大的尺寸查看所有应用字体。这是操作系统提供的辅助功能。
^弗拉维奥所说的。但请查看 Android 开发者网站上的显示指标类概述。你可能会在这里找到你需要的东西...... http://developer.android.com/reference/android/util/DisplayMetrics.html#
每英寸有 72 pts,每英寸有 160 sp(在设备设置中使用标准字体大小)。这意味着每 72 点有 160sp。160sp/72pts 简化为 20/9。因此,将 pts 转换为 sp 或 dp 时,请使用pts*20/9。正如其他人在这里已经提到的那样,sp 确实会因用户的设置而异,因此如果您不希望文本大小随设备设置而变化,请使用 dp。