Android 将40px转换为sp

Android 将40px转换为sp,android,Android,40px的sp值是多少?请同时说明换算公式 我正在尝试将psd中的字体大小转换为mdpi密度的sp单位,即320*480和160 dpi case COMPLEX_UNIT_SP: return value * metrics.scaledDensity; 从源头 这将sp转换为px,只需将其转置,就可以得到将px转换为sp的公式: sp = px / DisplayMetrics.scaledDensity 这不会将sp转换为px,反之亦然。但是,sp和dp几乎相似,因此,我认为

40px的sp值是多少?请同时说明换算公式

我正在尝试将psd中的字体大小转换为mdpi密度的sp单位,即320*480和160 dpi

case COMPLEX_UNIT_SP:
     return value * metrics.scaledDensity;
从源头

这将sp转换为px,只需将其转置,就可以得到将px转换为sp的公式:

sp = px / DisplayMetrics.scaledDensity
这不会将sp转换为px,反之亦然。但是,sp和dp几乎相似,因此,我认为使用这个公式是安全的

密度无关像素(dp) 定义UI布局时应使用的虚拟像素单位,用于以与密度无关的方式表示布局尺寸或位置

与密度无关的像素相当于屏幕上的一个物理像素 160 dpi屏幕,这是系统假设的基线密度 对于“中等”密度屏幕。在运行时,系统是透明的 根据实际情况,根据需要处理dp装置的任何缩放 使用中屏幕的密度。dp单元到屏幕的转换 像素很简单:
px=dp*(dpi/160)
。例如,在240 dpi上 屏幕,1 dp等于1.5物理像素。您应该始终使用dp 在定义应用程序的UI时使用单位,以确保正确显示 不同密度的屏幕上的用户界面


来源:

看看这个@abdel,它没有回答我的问题。我需要把px转换成的公式sp@palejandro我看到了那个问题,但仍然认为答案不恰当。我需要配方。比如sp=px*scaledDesnityGood工具就是:谢谢你的回答。那太完美了
px = dp * (dpi / 160)