【问题标题】:Best unit for text and dimensions in AndroidAndroid中文本和尺寸的最佳单位
【发布时间】:2019-01-31 15:10:45
【问题描述】:

自从我开始为 Android 开发应用程序以来,我一直使用 dp 作为尺寸,用 sp 作为文本大小已有 3 年了。

但最近,我和几个不相信 dp 和 sp 的人一起说“它在所有设备上的显示都不一样”。

他们使用的方法是:

设置文字大小时,不使用24 sp,也不使用24 dp,设置为屏幕的24%宽度或高度(以像素为单位)。这样,文本在所有设备(包括平板电脑)上的像素大小始终相同。

这种方法的正确性/有效性如何?专业的设计方法是什么?专业的安卓设计师对这种方法有什么看法?

【问题讨论】:

  • 这种方法的流行程度如何? - 以前从未听说过
  • 你试过 24% 了吗?
  • @TimCastelijns 抱歉,我的意思是正确的,感谢您的纠正

标签: android xml user-interface


【解决方案1】:

不知道%能代替dp有多好,但不要用它作为文字大小。

sp 很棒,因为用户可以通过在设备设置中更改他们喜欢的文本大小来调整它的大小。不要仅仅因为它使您的设计更容易而放弃这种可能性。

辅助功能 > 设计

请参阅本指南以供参考:Support different pixel densities

但是,在定义文本大小时,您应该使用可缩放像素 (sp) 作为单位(但不要使用 sp 作为布局大小)。默认情况下,sp 单位的大小与 dp 相同,但它会根据用户喜欢的文本大小调整大小。

【讨论】:

  • 在最近的 android 版本 (26+) 中,dp 也是用户的选择。我知道我不应该从用户那里获取东西,但我想问这是否是一种不好的做法,或者设计师和 UI 专业人员是否可以接受。
  • @AhmadSattout 到底设计师认为可以接受的东西并不重要,重要的是用户认为可以接受的东西
  • 是的,但我的问题更多是关于开发人员和设计师的观点。使用这样的东西专业吗?这不是所有人都认可的吗?
【解决方案2】:

文本的最佳单位是 sp,尺寸的最佳单位是 dp。
这是你想要的完美结果。 在大多数开发人员中,此单元用于文本和尺寸。 我尝试你的 % 但这在我的应用程序中不起作用。

【讨论】:

    【解决方案3】:

    dp 代表与密度无关的像素。它的目标是定义或多或少的物理维度。例如。 48dp 大约是指尖的大小,这就是为什么可点击的图标(例如,在 ActionBar 上)应该具有该大小的原因。 因此,对于 UI,您应该始终使用 dp(和 sp 用于文本)。它还有一个优点,即您可以在更大的屏幕上显示更多数据(例如,列表中的更多项目可见等)。

    如果您使用的是屏幕尺寸的 %,那么您所做的恰恰相反。在小型设备上 24% 会很小(从物理上讲)在大型平板电脑上会很大。 例如,如果您正在开发一款游戏,并且希望在每台设备上显示相同的图像,无论大小。

    【讨论】:

    • 这听起来很对,因为我看到了一个带有 %.无论您的屏幕多长、大或小,该列表都会有 4 个项目。而且这些项目在所有设备上看起来都非常不同。是的,4 个项目总是可见的,但它们在每个设备上的大小会非常不同。然而,遗憾的是,我的同事并不同意这一点。我的问题更多是关于这种方法有多专业或不专业。
    • 如果您的同事不相信您,只需制作一个带有 % 的小应用程序(我想一个文本和一个按钮就足够了)并在 10 英寸平板电脑上展示给他们。
    【解决方案4】:

    DP/SP 并不声称在所有屏幕尺寸上都相同,但大约在整个屏幕密度上尺寸相同。它只是 大约 大小相同的原因是密度被分为几类(例如 mdpi、hdpi、xhdpi...)。

    您不希望文本与屏幕大小相关,因为这样文本对于具有小屏幕的设备会非常小,而对于具有大屏幕的设备会非常大。相反,您希望字体大小易于阅读,并且在大屏幕或小屏幕上的大小大致相同。大屏幕的优势在于一次在屏幕上显示更多文本。

    此外,正如其他用户提到的那样,sp(显然现在是dp)可以根据用户偏好进行缩放,这对视力不佳的人非常有帮助。

    【讨论】:

    • 是的,因此通过将文本和视图设置为特定大小(例如以 px 或 pt 为单位),可以消除糟糕的用户偏好。这会导致特定用户不使用该应用吗?
    猜你喜欢
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 2018-10-26
    • 2019-07-05
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    相关资源
    最近更新 更多