我在/ res / values文件夹的dimens.xml中为textview提供了12sp的字体大小。

当我在Nexus 5设备(位于XXHDPI存储桶中)上尝试此字体时,我得到的文本大小为36。然后,我尝试在/ res / values-xxhdpi文件夹中创建与文本大小相同的12sp的新dimens.xml。仍然给我字体大小为36。

我只想将字体大小保持为12sp。这可能是什么原因?

请注意,我正在以编程方式添加TextView并通过设置它的大小

context.getResources().getDimension(
            R.dimen.font_size)

最佳答案

1sp = 3px设备上的XXHDPI。您在所有sp中都使用相同的dimens.xml值,因此在MDPI设备上具有12sp = 12px,但在Nexus上具有12sp = 36px

如果您希望Nexus的文本大小与4sp设备上的文本大小完全相同,请将其设置为MDPI

您也可以使用单个dimens.xml,并使用px作为单位而不是sp,这样就不会缩放字体大小。

09-26 15:58