对于文本大小,应使用"sp"而不是"dp"

Pet*_*nne 22 android textview android-layout

我用的时候

android:textSizes="20dp" 
Run Code Online (Sandbox Code Playgroud)

在我的XML for textView中,我收到一条警告"应该使用"sp"而不是"dp"用于文本大小."

为什么不使用"dp"?什么是正确的方法?如何在不同的显示器上实现相同的文本化?

Aji*_*ngh 32

您应该始终使用SP作为字体,因为它尊重用户首选项.这是一个例子 让我们借助一个例子来理解它 -

带SP和DP的文本

在此输入图像描述

更改设备文本设置(设置 - >显示 - >字体大小)

在此输入图像描述

现在重新打开应用程序并重新查看文本,您将看到使用SP的文本具有与DP不同的高度.

在此输入图像描述

  • 我因为'你应该永远'而被投票.例如,UX团队强制开发者为某些布局使用固定文本大小(平板电脑最显着).例如,"只是平板电脑字体大小的两倍".在这种情况下,dp metrics完美运行. (6认同)

res*_*218 27

你可以使用sp和dp.如您所知,在Android设置中,您可以更改文本大小(设置 - >我的设备 - >显示 - >字体大小).在设置中更改字体大小后,sp中的所有textView都会发生变化,dp - 不会改变


Gir*_*hai 13

你可以两者兼得

sp表示字体大小
dp用于其他所有内容.

dp与
密度无关的像素 - 基于屏幕物理密度的抽象单位.这些单位相对于160 dpi的屏幕,因此一个dp是160 dpi屏幕上的一个像素.dp与像素的比率将随着屏幕密度而变化,但不一定是成正比的.注意:编译器接受"dip"和"dp",但"dp"与"sp"更一致.

sp与
Scale无关的像素 - 这类似于dp单元,但它也可以根据用户的字体大小首选项进行缩放.建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好调整它们.

有关更多信息,请参阅Android中的px,dp,dip和sp之间的差异?