我有一个TextView
在其中以编程方式设置“SP”中的文本大小。
tv.setTextSize(spToPx(5, context));
public static int spToPx(float sp, Context context) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics());
}
第一个屏幕截图显示了它的外观(以及它在我的小米 Redmi 和 Doogee HT7 上的外观)
第二个屏幕截图显示了它在具有更高或相同 dpi 的其他设备上的外观。
通常,如果我理解正确,“dp”或“sp”中相同大小的文本在其他设备(具有相同屏幕尺寸)上看起来应该相同,因为它会自动将“dp”或“sp”转换为所需的数量像素取决于 dpi。
在阅读了有关具有不同密度的设备的 Android 开发人员指南后,我期望如果我在具有更高 dpi 的设备上使用相同的文本大小,文本会更小。但是现在我遇到了一个我真的不明白的情况。