名称解释:
1、分辨率:Android 中分辨率分为两种 (1)相对分辨率 :屏幕的宽和高的像素数 ,比如 我们一般说的320*480 其实是 屏幕宽像素数是320 高的像素数480。
(2)绝对分辨率 也就是dpi ,屏幕的每英寸的像素个数。比如dpi 160 是指该屏幕每英寸有160个像素点。模拟器上的dpi都是 160 所以 模拟器上的相对分辨率越大 屏幕越大。
2、px:pixel 像素,一块屏幕都是由光点组成。一个像素就是一个屏幕的光点。
3、dip:driver independent pixel ,与设备独立的像素,他是根据设备屏幕的密度 转换为像素点的。在Android开发中屏幕适配很有用。
4、density :密度 屏幕密度就是每英寸的像素点数,数值越高当然显示越细腻。对于屏幕来说,dpi越大,屏幕的精细度越高,屏幕看起来就越清楚。手机可以有相同的分辨率,但屏幕尺寸可以不相同。
5、屏幕大小:屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机”,就是指对角线的尺寸为5英寸,5寸×2.54厘米/寸=12.7厘米。
WVGA:800x480
FWVGA:854x480
QHD:960x540
720P:1280x720(标清,standard definition,SD)
1080P:1920x1080(高清,high definition,HD)
dpi(dots per inch,每英寸点数)
hdpi对应WVGA、FWVGA、QHD。
xhdpi对应720P。
xxhdpi对应1080P
android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件夹中的资源。
android:anyDensity="false"时,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源。
1)drawable
drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹的资源。
drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源。
(2)layout
在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换。
(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建议开发者不要使用具体的像素来表示控件尺寸。
在android中,不仅可以使用.png、.jpg、.gif的普通图片作为图片资源,而且可以将扩展名为.9.png的9-patch图片作为图片资源。android的SDK目录tools下的draw9patch工具可以生成一个可以伸缩的标准png图像,该图像的扩展名为.9.png。9-patch图片通常用作背景,与普通图片不同的是,使用9-patch图片作为屏幕或者按钮背景时,当屏幕尺寸或按钮大小改变时,图片可自动缩放,达到不失真效果。
9-patch PNG图片,在原生PNG图片四周空出一个像素间隔,用来标识PNG图片中哪些部分可以拉伸、哪些不可以拉伸、背景上的边框位置等。
怎样才能让Application自动适应不同的屏幕呢?
其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360、layout-800x480等,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。
在Android项目中 drawable-xdpi 中 对应的dpi大小:
l ----》120dpi ; m----》160 ;h -----》240 ;xh-----》320
系统会根据单前设备的屏幕分辨率 和 屏幕的尺寸 来选择drawable中的资源。 公式:分辨率 /尺寸 = 对应dpi。然后根据计算出的dpi 选择drawable 中的那个文件夹中的资源。 现在对于开发中有一个重要的问题,在6 中分辨率对于dpi 对应关系真确吗?720p的切图一定是放在xhdpi文件夹下吗? 显然不是这样的,这样根据目前市场上手机分辨率和尺寸来处理的,以前对应是这样,到现在 720p的切图 大多都放在 hdpi中。 而 1080p 的都放在 xhdpi中
目前主流手机的 是 720 * 1080
适配规则:能用拉伸图也就是9图的用9图,能用相对布局的用相对布局。能用代码算出 设置的长宽用代码计算。