如何将pt转换为sp



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

问题在于它取决于密度。真的,它们不是很好的衡量标准。

  • :异食癖有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设置应用了多少缩放,所以你必须找出它,但基本上我只会给他们一个模型,让他们从那里适当地调整大小——当然他们可以从视觉上非常接近它。

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

你不能像Flavio所说的那样将pt转换为sp。但是,您可以将pt大致转换为dp(在极端情况下为+/-30%,但至少需要+/-10%)。

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

对于更精确的因素:

  • 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是随着用户在系统设置中更改设备字体大小而动态设置的。用户可能希望看到更小或更大尺寸的所有应用程序字体。这是操作系统提供的可访问性功能。

^弗拉维奥说了什么。但请查看安卓开发者网站上的显示度量类概述。你可能会在这里找到你需要的。。。http://developer.android.com/reference/android/util/DisplayMetrics.html#

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

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

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

最新更新