目前的项目针对800*480,480*320,320*240三种分辨率发布了3种版本,颇为不便,市场上应用的下载都是一个版本自适应于各个分辨率的。那么,怎样做才能使各分辨自适应于同一版本呢?
其实非常简单,只要在项目的res目录下建立drawable-hdpi,drawable-mdpi,drawable-ldpi分别用来存放高、中、低分辨率的图片,再建立layout-hdpi,layout-mdpi,layout-ldpi分别用来存放高、中、低分辨率的布局文件。
就这么简单,自适应实现了。
------------------------------------------------------
关于分辨率,扩展介绍一下:
1.一般Android平台中多分辨率的处理方法:
1)平台根据手机分辨率自动加载相应资源,要求在项目中存放不同分辨率的资源(图片和布局文件)(推荐);
2)如果程序不支持多种精度屏幕,则系统会对程序谎称当前屏幕分辨率为相应值,程序按此分辨率绘制相应图形后,由系统对其进行再次缩放;
3)当前屏幕超过程序所支持屏幕的上限时,系统会谎称当前屏幕是一个相应值,超出这个值外的显示区域显示成黑色;
4)OpenGL动态绘制图片,但对不熟悉计算机图形学的开发者来讲是一个很大的挑战。一般开发游戏,采用OpenGL方式;
5)多个apk文件,Symbian和传统的J2ME就是采用这种方式,为一款应用提供多个分辨率版本。
2.屏幕相关术语:
1)屏幕尺寸:真正的物理尺寸,屏幕对角线的长度,单位是英寸。Android把支持的所有物理尺寸分成了4组:small, normal, large, extra large。
2)屏幕密度:单位通常是dpi(dots per inch),即每英寸的像素点数。为了简化起见,Android将所有的屏幕密度分成四组:low, medium ,high和extra high。
3)分辨率:屏幕上所有的像素点数目,一般用480*800的形式来表示。界面开发中应使用dip作为像素单位,以保证不同的屏幕密度上控件所占的实际px因密度而自动调整。
4)方向:从用户视角来看的屏幕的方向,Portrait纵向和Landscape横向。