Android分辨率详解

jopen 10年前

1、Android手机常见分辨率

WVGA:800x480

FWVGA:854x480

QHD:960x540

720P:1280x720(标清,standard definition,SD)

1080P:1920x1080(高清,high definition,HD)

2、分辨率对应dpi

dpi(dots per inch,每英寸点数)

hdpi对应WVGA、FWVGA、QHD。

xhdpi对应720P。

xxhdpi对应1080P。

3、AndroidManifest.xml设置

android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件夹中的资源。

android:anyDensity="false"时,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源。

4、横屏竖屏目录区分

1)drawable

drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹的资源。

drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源。

(2)layout

在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换。

5、多屏适配原则

(1)在layout文件中设置控件尺寸时应采用fill_parent、match_parent、wrap_content和dp。具体来说,设置view的属性android:layout_width和android:layout_height的值时,fill_parent、 match_parent、wrap_content和dp比px更好,文字大小应该使用sp来定义。

(2)在程序的代码中不要出现具体的像素值,在dimens.xml中定义。为了适应多种屏幕,android建议开发者不要使用具体的像素来表示控件尺寸。

6、9-patch图片

在android中,不仅可以使用.png、.jpg、.gif的普通图片作为图片资源,而且可以将扩展名为.9.png的9-patch图片作为图片资源。android的SDK目录tools下的draw9patch工具可以生成一个可以伸缩的标准png图像,该图像的扩展名为.9.png。 9-patch图片通常用作背景,与普通图片不同的是,使用9-patch图片作为屏幕或者按钮背景时,当屏幕尺寸或按钮大小改变时,图片可自动缩放,达到不失真效果。

9-patch PNG图片,在原生PNG图片四周空出一个像素间隔,用来标识PNG图片中哪些部分可以拉伸、哪些不可以拉伸、背景上的边框位置等。

7、不同layout

怎样才能让Application自动适应不同的屏幕呢?

其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360、layout-800x480等,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。

8、dip、dp、px、sp介绍

dip:device independent pixels,设备独立像素。

dp:很简单,和dip是一样的。

px:pixel,像素。

sp:scaled pixels,主要用于字体显示。

9、屏幕分辨率、大小、密度

(1)屏幕分辨率:屏幕分辨率就是手机屏幕的像素点数,指屏幕横竖各有多少个像素,一般描述成屏幕的“宽×高”。安卓手机屏幕常见的分辨率有 480×800、720×1280、1080×1920等,例如720×1280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素。

(2)屏幕大小:屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机”,就是指对角线的尺寸为5英寸,5寸×2.54厘米/寸=12.7厘米。

(3)屏幕密度:屏幕密度就是每英寸的像素点数,数值越高当然显示越细腻。对于屏幕来说,dpi越大,屏幕的精细度越高,屏幕看起来就越清楚。手机可以有相同的分辨率,但屏幕尺寸可以不相同。