Android 如何将pt转换为sp?

Android 如何将pt转换为sp?,android,units-of-measurement,psd,Android,Units Of Measurement,Psd,我是一名视觉设计师,从事安卓设计,我正试图为我们的工程师规范我的PSD文件。在任何安卓文档中,我似乎都找不到任何关于将点大小转换为SP类型的文档。(只是SP应该用于类型).像素和sp之间没有直接映射,因为sp是在用户在系统设置中更改设备字体大小时动态设置的。用户可能希望看到所有应用程序字体的大小都变小或变大。这是操作系统提供的辅助功能。^Flavio说了什么。但请查看Android开发者网站。你可能会在这里找到你所需要的…问题在于它取决于密度。实际上,它们不是很好的衡量标准来进行比较 点数:一

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

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

^Flavio说了什么。但请查看Android开发者网站。你可能会在这里找到你所需要的…

问题在于它取决于密度。实际上,它们不是很好的衡量标准来进行比较

  • 点数:一个pica中有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设置应用了多少缩放,所以你必须找出这个问题,但基本上我只会给他们模型,让他们从那里适当地调整大小——当然是y可以从视觉上获得非常接近的结果。

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

你不能像弗拉维奥所说的那样将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)Nexus7(216dpi)为0.5(=72/216*1.5)
  • xhdpi(比例因子:2.0)nexus10(300dpi)为0.48(=72/300*2)
所以12点会在

  • 10.1英寸宽xga:24.84dp
  • Nexus 7:24 dp
  • Nexus 10:25dp
  • dpi铲斗值:26.666dp

您可以对sp使用相同的值,但请记住,这些值可能会随用户设置的不同而不同。

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


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

明白,但在我的电脑中设计理想的屏幕布局时PSD…我指定点大小,因为这决定了类型与我设计中所有其他元素的关系…我们在Photoshop中没有SP度量单位…因此,如果我选择22磅作为字体…我想问我如何在规格中以SP单位标记。有没有办法将22磅转换为SP以用于规格说明?而且…我确实意识到类型将由用户更改…我主要是问如何传达我作为SP的pt大小…必须有某种方式来传达这一点,因为大多数平面设计师使用pts(而不是像素)进行排版在这种情况下,我认为1:1映射非常适合。很抱歉,我仍然没有看到任何特定于点大小-->sp大小转换的内容…我正在寻找一个比率等。同样,当我从android开发站点(提供的PSD包含所有android元素)打开gui文档时我点击了一些类型,打开了字体调色板,pt大小与GUI文档中提供的规范的比例为1:1…我不知道它是否正确..在这个公式中,它对我有效。sp=(pt/72)*densitydpi。例如(sp=(9/72)*160)…看我在这里的帖子,当把32pt放在那里,你会得到71sp,这是巨大的。这里有些东西真的很奇怪。他们正在考虑1英寸==72pt==160 dp,所以从pt转换为sp/dp,它是(大约)除以2的计算,对吗?在这种情况下,有多少在线转换器获得了sp/dp的巨大值?它们可能使用不同的密度。我在这里使用的是android pt单元,即android如何显示x pt,即每英寸72 pt。因此,这取决于密度,如果每英寸300 pt,则因子将dif是否可能是因为PPI的密度配置?PS(和其他图像编辑工具)的默认值为72。也许您需要根据希望使用的密度进行更改,然后它将为您提供正确的值?可能是(请参阅编辑的注释)。我没有用它将PS转换为dp,而是将dp转换为android pt,因此我没有使用PS的经验。我也不使用PS。设计师问我如何转换,因为在线工具给了我巨大的价值结果。那么DPI(或PPI)有多大你说我应该告诉设计师使用图像,假设它用于XHDPI设备?一些网站说是300,但我记得XHDPI是320…dp应该是一样的