Android 适配不同分辨率&hdpi、mdpi、ldpi&横屏竖屏

fmms 12年前
     <p>一:不同的layout<br /> Android手机屏幕大小不一,有480×320, 640×360, 800×480.怎样才能让App自动适应不同的屏幕呢?<br /> 其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640×360,layout-800×480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。</p>    <p>二:hdpi、mdpi、ldpi</p>    <p>在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。<br /> drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:<br /> (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480×800),FWVGA (480×854)<br /> (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320×480)<br /> (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240×320)<br /> 系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。<br /> 在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。</p>    <p>三:横屏竖屏</p>    <p>以下步骤是网上流传的,不过我自己之前是通过图形化界面实现这个配置,算是殊途同归,有空我会把图片贴上来。<br /> 还要说明一点:每个activity都有这个属性screenOrientation,每个activity都需要设置,可以设置为竖屏(portrait),也可以设置为无重力感应(nosensor)。<br /> 要让程序界面保持一个方向,不随手机方向转动而变化的处理办法: </p>    <p>在AndroidManifest.xml里面配置一下就可以了。加入这一行android:screenOrientation=”landscape”。<br /> 例如(landscape是横向,portrait是纵向):</p>    <div class="footerLinks">     <br />    </div>    <div class="footerLinks">     <br />    </div>    <div id="msgcns!F408F266382E09FE!1027" class="bvMsg">     <div>      <p>对于Android游戏开发我们不得不像iPhone那样思考兼容 Android平板电脑,对于苹果要考虑iPad、iPhone 3GS和iPhone 4等屏幕之间的兼容性,对于几乎所有的分辨率总结了大约超过20中粉笔阿女郎的大小和对应关系,对于开发Android游戏而言可以考虑到未来的3.0以及很多平板电脑的需要。</p>      <p>常规的我们可能只考虑QVGA,HVGA,WVGA,FWVGA和DVGA,但是抛去了手机不谈,可能平板使用类似WSVGA的1024×576以及WXGA的1280×768等等。<br /> QVGA = 320 * 240;<br /> WQVGA = 320 * 480;<br /> WQVGA2 = 400 * 240;<br /> WQVGA3 = 432 * 240;<br /> HVGA = 480 * 320;<br /> VGA = 640 * 480;<br /> WVGA = 800 * 480;<br /> WVGA2 = 768 * 480;<br /> FWVGA = 854 * 480;<br /> DVGA = 960 * 640;<br /> PAL = 576 * 520;<br /> NTSC = 486 * 440;<br /> SVGA = 800 * 600;<br /> WSVGA [...]</p>     </div>    </div>