sw600dp和w600dp之间的区别?


67

请以简单的方式详细说明sw<N>dp和之间的区别w<N>dp。我研究了屏幕尺寸的完整文档,但是在这两个限定符sw <>w <>之间感到困惑。

Answers:


141

Android设备屏幕是矩形。矩形有两个侧面,一个比另一个短。我们称其为短A和长B。

-swNNNdp指示“如果长度大于或等于NNN dp,则使用这些资源”

-wNNNdp表示“如果当前持有的设备宽度大于或等于NNN,则使用这些资源dp

当用户在纵向和横向之间旋转设备时,宽度将更改(为A或B),但是A(最短的宽度)始终相同。


2
例如,最小宽度为600dp的设备,并使用旋转设备来纵向显示布局,仍使用sw600dp资源?
Mudassar Shaheen

@MudassarShaheen:正确。
CommonsWare

请多告诉我一件事。如果设备的密度为320x480 mdpi,则它将使用w320dp的资源,对吗?如果用户现在将方向切换为横向,则必须从w480 dp中选择资源?
Mudassar Shaheen

1
@MudassarShaheen:“我对吗?” -双方均为320dp或更大,但是使用什么资源集取决于可用的资源集。“如果用户现在将方向切换为横向,则必须从w480 dp中选择资源?” -如果存在这样的资源集,则可以。
CommonsWare

3
谁能告诉我,在实际应用中我应该同时使用sw600dp和w600dp吗?
narangrajeev81

14

请看一下屏幕支持

根据文档:

西南:屏幕的基本尺寸,由可用屏幕区域的最短尺寸表示。具体来说,设备的MinimumWidth是屏幕可用高度和宽度中的最短宽度(您也可以将其视为屏幕的“最小可能宽度”)。您可以使用此限定符来确保,无论屏幕当前的方向如何,您的应用程序的UI至少具有dps宽度可用。

while W:以dp单位指定应使用资源的最小可用宽度(由值定义)。当屏幕的方向在横向和纵向之间切换以反映用户界面可用的当前实际宽度时,系统相应的宽度值就会更改。

用我的话说:

SW:dps屏幕边缘之间的最小距离将在您的布局上运行,因此,如果您使用layout-sw600dp /文件夹,则其中的所有布局仅适用于至少600dp(宽度或高度)的设备

W:表示您的布局将可以在宽度为n dp的任何设备上使用,而无论高度如何,或者当前处于横向模式的设备都可以使用(在这种情况下,w指的是高度..因为横向和纵向之间的方向不同)


如果设备的密度为320x480 mdpi,则它将使用w320dp的资源,对吗?如果用户现在将方向切换为横向,则屏幕宽度为480dp,则必须从w480 dp中选择资源?
Mudassar Shaheen

1
恰好..顺便说一下,文档讨论了很多例子以使这些值更清楚
Me.Me先生2013年

1
请让我知道我是否要在ladscape模式下制作7英寸平板电脑(1280 * 800分辨率)应用程序,那么我应该选择layout-sw600dp还是layout-w600dp还是layout-w600dp-land?
Ramkesh Yadav
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.