开发apk的时候,有时候我们会使用drawable-hdpi-800x480这样的形式来为特定的设备指定资源。我想问的问题是,这里800x480是以xp为单位,还是以dp为单位?我进行了一些测试,Galaxy Nexus(1280*720,xhdpi)的模拟器加载了layout-xhdpi-640x360的资源,而非layout-xhdpi-1280x720资源,这样看来,单位是dp。
但是Nexus S(800*480,hdpi)的模拟器则是加载了layout-hdpi-800x480的资源,而非layout-hdpi-533x320的资源,这又说明单位应该是px。到底是什么情况?屏幕适配

解决方案 »

  1.   

    你这样写貌似是根据密度和分辨率来吧,
    我一般layout-1280x720,没有加上密度
      

  2.   

    好吧,我现在相信1280x720的单位是px了。Galaxy Nexus会去加载640x360的原因是,Galaxy Nexus的屏幕有一部分被虚拟按键占用了,导致实际app可用的尺寸会小于1280x720,实际可用的大小应该为(1190x720左右),所以,系统无法找到合适的资源,所以去搜索相近的资源代替,理论上1280x720比起640x360更接近1190x720.
        但是,类似于large,normal的查找方式,系统只会去搜索比当前设备小的资源(可能怕资源大了显示不下吧?),所以系统选择加载640x360。