一、适配不同屏幕大小
1、使用wrap_cont和match_parent
2、使用RelativeLayout来适配不同组件之间的关系
3、使用尺寸修饰符
当屏幕的大小不同时如:Phone和TV 需要根据他们尺寸的大小来适配不同的Layout,如新闻app在手机上它可以只能先显示列表界面再显示新闻内容,但若在TV上可以左边显示列表右边显示详情,这样通过不同的Layout就有了就拥有更好的用户体验
在3.2以前有的屏幕适配符如下:small, normal, large and xlarge 其中large表示的是平板以上 xlarge表示的是TV尺寸以上。具体如下:layout-large layout-xlarge
在3.2以上出现了最小宽度修饰符:他通过以dp为单位来适配不同的尺寸。如:layout-sw600dp
当需要为2.3到以上版本适配时就需要兼容以上两种方式。那么如何来兼容呢?
首先把不同屏幕的layout都放入layout文件夹
res/layout/main.xml
, single-pane layoutres/layout/main_twopanes.xml
, two-pane layout
再在资源文件夹中适配
res/values-large/layout.xml
:<resources>
<itemname="main"type="layout">@layout/main_twopanes</item>
</resources>res/values-sw600dp/layout.xml
:<resources>
<itemname="main"type="layout">@layout/main_twopanes</item>
</resources>
4、使用方向修饰符
如:res/values/layouts.xml、res/values-sw600dp-land/layouts.xml
5、使用9.path图
9.path的 图的绘制方法如下:右边和下边的点表示不能被拉伸的内容。左边和上边的点表示可以被拉伸的内容
二、适配不同屏幕的密度
1、对控件的大小使用dp对字体的大小使用sp(sp可以使字体根据系统设置进行缩放)
2、对不同屏幕密度绘制不同大小的图片。
xhdpi
: 2.0hdpi
: 1.5mdpi
: 1.0 (baseline)ldpi
: 0.75