如下图中values-sw600dp的sw表示最小宽度,那么600dp是如何确定的呢?
举个例子:一般情况下我们可以容易知道设备的分辨率和尺寸的参数。比如现在有平板A(分辨率1280*720px,尺寸是8inch),手机B(分辨率1920*1080px,尺寸是5.7inch),手机C(分辨率1280*720px,尺寸是5inch)。通过下面的屏幕像素密度的计算公式,我们可以分别计算出他们的屏幕像素密度:
平板A约为184dpi,手机B约为386dpi,手机C约为293dpi。
接下里需要注意的是,最小宽度是不考虑横屏或竖屏的,也就是说最小宽度是设备屏幕四条边里最短的那两条边。如果需要考虑横竖屏那么可以加入屏幕方向限定符,这不在我们讨论之列。那么接下来我们取最短边的像素数,并通过下面的公式计算最小宽度(dp):
平板A约为626dp,手机B约为448dp,手机C约为393dp。
如上,使用600dp就可以区分出平板和手机两类设备,如果需要详细区分手机B和C可以再考虑设置sw400dp作为区分。
理论上以上方法是成立的,但是一些定制的设备是允许修改屏幕密度和最小宽度的,比如华为手机的开发者模式,以及3288的开发板,所以,真正的最小宽度还是要靠计算获得。