UI设计师为Android应用程序绘制了这个设计:
尺寸为1080x1920像素。这与具有xxhdpi密度的Nexus 5显示器相同。在此密度1dp = 3px。 我的设计JPEG图像上有这封信。它的高度--45px。
所以我计算了我的TextView大小45px / 3 = 15sp
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:text="Large Text"
android:textColor="#5B5C5D"
android:singleLine="true"
android:id="@+id/tvFolder" />
但是当我在Galaxy Nexus上运行我的应用程序时 - 720x1280px。密度 - xhdpi。 1dp = 2px。我得到了这个结果 - 我的字母'd'高度为24px,等于12dp。
当然,我可以重新计算(乘以1.25)并制作TextView 19dp。但我想了解为什么会这样,我们可以解决这个问题。也许我很困惑并犯了一个错误。所以我的问题是,sp有什么问题?
答案 0 :(得分:3)
您是否在设备设置中检查了字体比例是否设置为1?
如果要在设备特定像素中定义字体大小,则必须使用dp,如果您希望用户能够根据自己的意愿进行缩放,则使用sp。