自从我开始为Android开发应用程序以来,我已经使用dp表示尺寸,使用sp表示文本大小。
但是最近,我和一些不相信dp和sp的人一起加入,说“在所有设备上显示的内容都不相同”。
他们使用的方法是:
设置文字大小时,您不使用 24 sp 或 24 dp ,而是将其设置为屏幕的 24%宽度或高度(以像素为单位)。这样,在所有设备(包括平板电脑)上,文本的像素大小始终相同。
此方法的正确性/有效性如何?专业的设计方式是什么?专业的Android设计师对此方法有何看法?
答案 0 :(得分:2)
不知道%
可以代替dp
有多好,但是不要将其用作文本大小。
sp
很棒,因为用户可以通过在设备设置中更改其首选文本大小来调整其大小。不要仅仅因为它使您的设计更容易而放弃这种可能性。
可访问性>设计
请参阅本指南以供参考:Support different pixel densities
但是,在定义文本大小时,应改为使用可缩放像素(sp)作为单位(但切勿将sp用作布局大小)。默认情况下,sp单位的大小与dp相同,但是会根据用户的首选文本大小来调整大小。
答案 1 :(得分:1)
dp代表密度无关的像素。其目标是定义或多或少的物理尺寸。例如。指尖的大小约为48dp,这就是为什么可点击图标(例如,在ActionBar上)应具有该大小的原因。 因此,对于UI,您应该始终使用dp(对于文本则使用sp)。它还具有一个优点,您可以在更大的屏幕上显示更多数据(例如,列表中的更多项目可见)。
如果使用的是屏幕尺寸的%,则表示完全相反。在小型设备上,从物理角度来说,在24%的小型平板电脑上会很小(在物理上来说会很大)。 例如,如果您在开发游戏,并且想要在每个设备上显示相同的图像(无论大小),都可以使用%。
答案 2 :(得分:0)
DP / SP并非在所有屏幕尺寸上都相同,而是在整个屏幕密度上大约相同。尺寸大约的原因是密度被分为几类(例如mdpi,hdpi,xhdpi ...)。
您不希望文本与屏幕大小相关,因为那样一来,对于屏幕较小的设备,文本将很小,而对于屏幕较大的设备,文本将会很大。相反,您希望字体大小易于阅读并且在大屏幕或小屏幕上都应具有相同的大小。大屏幕仅具有一次在屏幕上显示更多文本的优势。
此外,正如其他用户所提到的,sp
(显然现在是dp
)可以根据用户的喜好进行缩放,这对于视力不好的人确实很有帮助。
答案 3 :(得分:0)
文本的最佳单位是sp,尺寸的最佳单位是dp。
这是您想要的完美结果。
在大多数开发人员中,此单位用于文本和尺寸。
我尝试输入您的%,但在我的应用中不起作用。