housezhu 2012-07-30
写在前面:各种常见的分辨率。
1、VGA:最早其实是IBM计算机的一种显示标准,最后逐渐的演变,成了640×480这个分辨率的代名词,也是现在绝大多数分辨率的基准。
2、QVGA:就是Quarter VGA的简称,意思是VGA分辨率的四分之一,这是目前最为常见的手机屏幕分辨率,竖向的就是240×320像素,横向的就是320×240像素。目前绝大多数的手机都采用这种分辨率。
3、HVGA:代表的意思是Half-size VGA,意思是VGA分辨率的一半,为480×320像素,宽高比为3:2。目前这种分辨率的屏幕大多用于PDA,当然iPhone和第一款Google手机——T-Mobile G1也都是采用这种分辨率,黑莓也有手机采用HVGA分辨率的屏幕。
4、WVGA:Wide VGA,分辨率分为854×480像素和800×480像素两种。由于目前很多网页的宽度都是800像素,所以这种分辨率通常用于PDA或者高端智能手机,方便用户浏览网页。
关于手机分辨率的问题,虽然不算什么特别高深的技术问题,但是在实际开发中也是不可小觑的。并且在面试的过程中也是经常被问到的。
关于手机的适配通常需要注意如下的几个细节:
第一:在xml代码的布局文件中,请尽量使用相对布局或者是线性布局的方式。这在一定的程度上可以解决屏幕适配的问题。在这里并不推荐使用绝对布局。
第二:在xml文件的单位规定时,请尽量的使用dip或者是sp,而不要使用px。因为不同设备有不同的显示效果,这个和设备硬 件有关,一般我们为了支持 WVGA、HVGA 和 QVGA 推荐使用这个,不依赖像素.
第三:为不同分辨率提供不同的布局文件。(文件夹中的布局文件名称要相同 )
比如
layout-320x240 注: 320 (大分辨率) 要写在前面,(240)小分辨率写在后面
layout-480x320 注: 480 (大分辨率) 要写在前面,(320)小分辨率写在后面
drawable-hdpi 该图片即适用于横屏,也适用于竖屏
drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹中的资源
drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源第四:细心的人会发现自android2.0开始之后drawable文件被三个文件夹drawable-hdpi,drawable-mdpi,drawable-ldpi三个文件夹所取代。
关于drawable-hdpi、drawable-mdpi、drawable-ldpi的区别:
(1)drawable-hdpi里面存放高分辨率的图片,如WVGA(480×800),FWVGA(480×854)
(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320×480)(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240×320)
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。第五:请在AndroidManifest.xml文件的元素如下添加子元素
android:normalScreens="true" android:anyDensity="true"
android:smallScreens="true">
名如其意,以上是为我们的屏幕设置多分辨率支持(更准确的说是适配大、中、小三种密度)。android:anyDensity="true" ,这一句对整个的屏幕都起着十分重要的作用,值为true,我们的应用程序当安装在不同密度的手机上时,程序会分别加载hdpi,mdpi,ldpi文件夹中的资源。
总结:关于Android的屏幕适配问题总结到这里。我自己在开发中比较常用的还是自己见一个Drawable的目录,然后在此目录中放置各种图片和select布局文件,然后布局就采用RelativeLayout+LinearLayout的布局。具体的情况具体区分对待吧。