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