1、我新建了一个HVGA的avd,然后按该avd的显示状况,做了一个应用程序,显示效果良好。2、我又新建了一个QVGA的avd,在该avd上运行上面的程序,界面按比例缩小,显示效果良好。3、但我如果使1、步创建的虚拟机,运行时在eclipse环境中,工程的debug configurations中,在target选项卡中Additional Emulator Command Line Options中设置  -skin QVGA,运行后,界面就没有按比例缩小,有的控件显示不下了,这和2、步中直接创建虚拟机时指定QVGA类型有何区别??
一般开发程序时,如何做才能使其自适应终端屏幕的不同??哪位高人来指点一下,不胜感激!

解决方案 »

  1.   

    res资源可以指定分辨率的文件夹,相应的布局文件还有图片放在里面即可
      

  2.   

    res中可以将不同分辨率的图片,放置到drawable对应目录
    比如:drawable-480x800,drawable-1024x600
    依次类推,这样程序会自动加载对应分辨率机型的drawable目录图片
      

  3.   

    3、但我如果使1、步创建的虚拟机,运行时在eclipse环境中,工程的debug configurations中,在target选项卡中Additional Emulator Command Line Options中设置 -skin QVGA,运行后,界面就没有按比例缩小,有的控件显示不下了,这和2、步中直接创建虚拟机时指定QVGA类型有何区别??
      

  4.   

    确实是这样啊,感觉这算是个小bug了。
    通过1.2步创建AVD的时候,会生成对应的一个文件夹(我的在C:\Documents and Settings\Administrator\.android\avd\目录下),里面有各种img文件,还有配置文件。配置文件包括了skin大小。可能程序是根据此skin大小来决定显示尺寸。而你Option -skin QVGA并没有创建AVD,只是决定了emulator显示的大小。 
    纯属猜测,没有验证。
      

  5.   

    试问,布局时用的什么单位?在这种情况下
    dip/dp比较好!
      

  6.   

    如同国际化一样,在res目录下,按分辨率的不同,建立不同的资源包并且放入相应的资源文件的大小即可
      

  7.   


    首先应该是这样写drawable-800x480,大数字放在前面吧,然后就是我遇到的问题了,为啥我1024会自动加载800x480里面的图片啊,并且还失真了,同时800x480模拟器上的图片也失真了,为啥啊?????