Android烂大街的屏幕适配方法

关于屏幕适配的话,应该是每个项目都必须要有的东西,推荐几种自己常用的方式:

1,用权重或百分比布局,这个网上就很多, 自己百度就行, 原理就很简单了,按百分百来。

2.自定义控件,以及代码设置宽高,这个其实我个人比较常用,原理其实跟百分比布局类似,取屏幕的大小,设置给相应的控件。这里要注意的就是设置控件的宽高要使用的方法:Layoutparms,他是viewgroup的一个内部类,内部有成员变量wdith height来设置控件的宽高。需要注意的是,子View的父布局是什么viewgroup就该用这个viewgroup下的layoutprams,比如Linear.Layoutprms,这里还需要注意,view.getlayoutparms(),与直接new的区别,直接new是一个空白的没有值得layouparms,get是获取当前view的。不管是获取还是new,都记得设置完大小后view.setlayoutparms():

3.在关于图片的适配,还是选用五种大小res资源文件,这里引用一张图来讲解下:


Android烂大街的屏幕适配方法_第1张图片

Android里默认以160dpi为标准dpi也就是说,这个时候1dp=1px,其他的时候都是做除160来取当前的比例,比如240dpi/160dpi=1.25 这个时候,1.25px=1dp;

你在你res下看到的mimap-ldpi就是对应的这张图上的屏幕分辨率,他会根据安装app的屏幕分辨率大小就近选择图片。

3.dimens适配

这个应该是现在比较常用的适配的了。什么意思呢,打开你的res/values 你会发下里面有个dimens.xml,那么我们就可以在里面写dp这个以前基础我就不多赘述了,那这个玩意怎么做适配呢,你可以这样做:

在res下创建多个values如values-320x480。里面创建dimens.xml这时候如果你的app的屏幕是320*480分辨率那么他加载的就是这个values下的dimens。需要注意的事,这个时候,dimens里面的单位就不该是dp,应该是px了,于是你可以这样做。


Android烂大街的屏幕适配方法_第2张图片

到这里,应该有人要吐槽了,这尼玛,我写到哪年?


年轻人,不要惊慌,这里讲一个东西叫sw (small width)最小宽度,我们可以在项目里写values-sw320dp。

这是什么意思呢,这个资源文件夹下对应的是最小宽度是320dp的手机屏幕应该加载的尺寸,在这里面。

如果再有一个sw480dp,系统就会判断你是否大于480dp如果大于就选择480反之选择320。这个时候里面写的就应该是dp。附上一篇代码创建文件夹的帖子,http://blog.csdn.net/hnzcdy/article/details/50628993

你可能感兴趣的:(Android烂大街的屏幕适配方法)