关于适配不同分辨率的一些心得

在适配不同分辨率手机时,往往会在资源文件中根据不同的分辨率生成不同的文件夹,以便于适配。

文件夹命名规则可分为下列两种:values-sw[n]dp、values-1080x700。对这两种规则分别阐述。

1、values-1920x1200

     1920和1200之间并不相乘号,而是小写字母x。

     1920x1200 并不一定适配于分辨率为1920*1200的手机。例如华为PLE-703L的分辨率为1920*1200,但适配并不会读取1920x1200内容。因为除去虚拟键部分 ,就达不到1920*1200了,而是1824*1200。所以需要生成1824x1200的资源文件夹。

2、values-sw[n]dp

      这里的sw代表smallwidth的意思,当你所有屏幕的最小宽度都大于600dp时,屏幕就会自动到带sw600dp后缀的资源文件里去寻找相关资源文件,这里的最小宽度是指屏幕宽高的较小值,每个屏幕都是固定的,不会随着屏幕横向纵向改变而改变。

     其中n是如何计算的呢?首先通过context.getResources().getDisplayMetrics().density获取到当前机器的屏幕密度,然后通过dp = px/density进行换算可以得到机器对应的以dp为单位的大小(px为1920x1200中的短的那个,一般为宽度,此例为1200)。

你可能感兴趣的:(Android)