由于Android设备的屏幕尺寸、分辨率差别非常大,如果希望我们的应用能够在不同屏幕尺寸或分辨率的Android设备上运行,即更换Android设备后界面和字体不会因此变得混乱,则需要考虑屏幕的自适应性问题。相关概念: (1)屏幕尺寸(Screen size):即指屏幕的对角线长度,屏幕尺寸可分为small(小屏幕)、normal(中等屏幕)、large(大屏幕)、xlarge(超大屏幕); (2)分辨率(dp):即整个屏幕有多少个像素点组成,可分为ldpi(低分辨率)、mdpi(中等分辨率)、hdpi(高分辨率)、xhdpi(超高分辨率);     >xlarge屏幕尺寸分辨率至少需要960dp*720dp     >large屏幕尺寸分辨率至少需要640dp*480dp     >normal屏幕尺寸分辨率至少需要470dp*320dp     >small屏幕尺寸分辨率至少需要426dp*320dp (3)像素密度(dpi):每英寸屏幕含有的像素点个数 (android 也按照像素密度分了四个等级,分别是low, medium, high, 和 extra high); (4)方 向(Orientation) :分水平和垂直,如果应用做的好的话,这两个方向都要考虑;     android 对不同尺寸不同像素密度等级划分:   一、使用layout_weight属性方法     目前最为推荐的Android多屏幕自适应解决方案。 该属性的作用决定控件在其父布局中的显示权重,一般用于线性布局中。layout_weight属性值越小,则对应的layout_width或layout_height的优先级就越高,一般横向布局中,决定的是layout_width的优先级;纵向布局中,决定的是layout_height的优先级。目前有两种方法:(1) 传统使用方法 :将layout_width和layout_height设置为fill_parent,通过 layout_weight属性控制控件的显示比例,当layout_weight越小,控件显示比例就越大。但是,如果布局中控件较多且显示比例不相同时,传统使用layout_weight属性的方法将比较麻烦。(2) 0px设值法:即使layout_width="0dp" 或layout_height="0dp",再结合layout_weight属性正比例控制控件的显示,该方法有效解决了当前Android开发中碎片化问题之一。 源码举例: 1.res/values/style_layout.xml 功能:将控件的layout_width和layout_height两个属性封装成4个style <?xml version="1.0" encoding="utf-8"?>                         2.res/layout/weight_layout.xml <?xml version="1.0" encoding="utf-8"?>                                                                                                                                                                                                       3.效果演示     如图所示,分别为480*800界面和320*480界面。
二、自定义尺寸法     所谓自定义尺寸法,即为每一种屏幕界面定义一套界面尺寸大小。
1.res/values-480x320/dimen_height.xml 功能:定义两套应用于不同界面的尺寸 dimen name="height_1_80">6dp      18dp    30dp  42dp  54dp  66dp  78px 90px  102px      ........... 2.dimen_layout.xml 功能:根据不同分辨率屏幕,使用不同的尺寸 <?xml version="1.0" encoding="utf-8"?>