我正在开发一个应用程序,它具有不同屏幕的不同布局和值文件,然后我遇到了一个问题:smallestWidth限定符只检查设备smallestWidth是否大于指示值。
当我有以下文件夹结构时,这很麻烦:
res/layout-port-mdpi
res/layout-sw720dp
res/layout-sw720dp-port
res/layout-sw720dp-land
在这种情况下,在mdpi
sw720
port
设备上,Android会使用res/layout-port-mdpi
而不是我真正想要使用的res/layout-sw720dp-port
。 res/layout-port-mdpi
适用于较小的手机。
有没有办法表明smallestWidth LESS 比719dp好,或者我是否需要创建res/layout-sw720dp-port-mdpi
和所有其他dpis?这听起来很蠢。
谢谢你的回答。
答案 0 :(得分:2)
res / layout-port-mdpi适用于较小的手机。
不,不是。适用于中密度屏幕的人像设备。它没有规定任何尺寸。
在这种情况下,在mdpi sw720端口设备上,Android将使用res / layout-port-mdpi而不是我真正想要使用的res / layout-sw720dp-port。
没有。 -sw720dp
是一个比-mdpi
更强的标准,因此对于-sw720dp
和 -mdpi
和的设备是以肖像方式举行,res/layout-sw720dp-port
应该使用。
有没有办法表明smallestWidth少于719dp
不是真的。如果设备的值低于您使用的任何此类资源集,Android将使用不具有任何-swNNNdp
值的资源集。
我是否需要创建res / layout-sw720dp-port-mdpi以及所有其他dpis?
没有
例如,如果您的目标是使用一些专门用于-sw720dp
设备的布局和用于较小设备的其他布局,并为每种尺寸使用一些不同的横向布局,那么您的目录将是:
res/layout-sw720dp-land/
用于-sw720dp
横向广告设备res/layout-sw720dp/
用于-sw720dp
非横向设备
res/layout-land/
用于小于-sw720dp
设备的横向广告res/layout/
小于-sw720dp
非横向设备拥有res/layout/
中的每个布局之一,并在资源集中覆盖那些仅在需要时具有更多约束的布局。