我有两个设备:
Moto-G first generation (720*1280, 4.5" 324.2 PPI)
ICE Tablet (600*1024 7" 169.55 PPI)
为"values-sw420dp-xhdpi"
创建了文件夹"values-xhdpi"
和Moto-G
,为"values-sw360dp-mdpi"
创建了文件夹ICE Tablet
。但是这两个设备都从"values-sw360dp-mdpi"
文件夹中获取值。
我对设备的这种行为非常困惑,因为两者都完全不同,但为什么会发生这种情况呢?
有人可以指导我如何为这两个设备定义sw
文件夹,一般来说sw
是如何工作的?我阅读了sw
文件夹的官方指南并支持多个屏幕,但没有确切的想法。
答案 0 :(得分:1)
根据您的问题,让我引用Android开发者指南中的一个片段:
屏幕配置:smallestWidth
限定符值: swdp
示例: sw600dp sw720dp
屏幕的基本尺寸,如最短的指示 可用屏幕区域的尺寸。具体来说,设备的
smallestWidth
是屏幕可用高度最短的 宽度(您也可以将其视为“最小可能宽度”) 屏幕)。您可以使用此限定符来确保无论如何 屏幕的当前方向,您的应用程序至少<N>
宽度的dps可用于其UI。例如,如果您的布局要求其最小尺寸为 屏幕区域始终至少600 dp,然后你可以使用它 限定符来创建布局资源
res/layout-sw600dp/
。该 系统将仅在最小维度时使用这些资源 可用屏幕至少600dp,无论是否600dp side是用户感知的高度或宽度。最小宽度是a 固定屏幕尺寸特征的设备; 设备的 屏幕方向时smallestWidth
不会改变 变化。强>
就像@tiny说的那样:
sw420dp-xhdpi表示screenWidth = 840(420 * 2),
sw360dp-mdpi表示screenWidth = 360(360 * 1)
编辑:使用此网站http://pixeldensitycalculator.com/我已经计算了
这些设备都没有超过320dpi,这就是为什么他们都没有使用你的420dpi文件夹。
希望有所帮助