请用简单的方式详细说明sw<N>dp
和之间的区别。w<N>dp
我研究了屏幕尺寸的完整文档,但对这两个限定符sw<>和w<>感到困惑。
2 回答
Android 设备屏幕是矩形的。矩形有两条边,一条比另一条短。让我们称短的 A 和长的 B。
-swNNNdp
表示“如果 A 的长度大于或等于 NNN,则使用这些资源dp
”
-wNNNdp
表示“如果当前持有的设备宽度大于或等于 NNN,则使用这些资源dp
”
当用户在纵向和横向之间旋转设备时,宽度会发生变化(为 A 或 B),但 A(最短宽度)始终相同。
请查看屏幕支持
根据文件:
SW:屏幕的基本尺寸,由可用屏幕区域的最短尺寸表示。具体来说,设备的最小宽度是屏幕可用高度和宽度中最短的(您也可以将其视为屏幕的“最小可能宽度”)。您可以使用此限定符来确保,无论屏幕的当前方向如何,您的应用程序的 UI 至少有 dps 的宽度可用。
而W:指定资源应使用的最小可用宽度(以 dp 为单位)——由值定义。当屏幕的方向在横向和纵向之间切换时,系统对应的宽度值会发生变化,以反映 UI 可用的当前实际宽度。
用我的话来说:
SW:您的布局将在 dps 中运行的屏幕边缘之间的最小距离,因此如果您使用 layout-sw600dp/ 文件夹,则其中的所有布局仅适用于至少具有 600dp(宽度或高度)的设备
W:意味着您的布局将适用于任何具有 n dp 宽度的设备,无论高度如何,或者可能是当前处于横向模式的设备(在这种情况下, w 将指高度 .. 因为横向和纵向之间的方向不同)