如何让Android实现全屏适配
1.不要使用绝对布局。
2.尝试使用match_parent而不是fill_parent。
3.尽可能使用权重(android:layout_weight)。
4.如果是纯色背景,尽量用安卓的形状定制。
5.如果需要适应特定的分辨率,可以在res目录下创建一个新的文件夹layout-HxW.xml。比如适应1080*1800的屏幕(魅族MX3采用这个分辨率),新建一个layout-1800 x 1080 . XML的文件夹,然后定义下面的布局。Android系统会优先找到同分辨率的布局,如果不存在,就用默认布局下的布局代替。
第二,关于制作图片
1,关于设计:
设计方案首先要设定一个要设计的尺寸,尽量使用目前最流行的屏幕尺寸(比如目前占屏幕比例较大的480系列是480*800或者400*854,下面的图标制作也是按分格换算)。
先了解一下屏幕的级别:
屏幕级别:
注意屏幕等级是按密度分的,和像素无关。如果你必须把密度和像素联系起来,你需要一个参照系。android使用mdpi级别作为标准参考屏幕,也就是说一个密度在320*480分辨率的手机上可以容纳一个像素。然后在此基础上对比其他密度等级。如果理想的话,480*800密度的屏幕可以容纳1.5像素。
物理尺寸:
单位是英寸而不是像素,也就是说一英寸的显示尺寸在任何分辨率下都是一样的,但是不同密度的手机显示的像素实际尺寸是不一样的(这也是安卓手机需要适应的原因)。
然后就是重点了。
假设1像素在160密度下显示1英寸,1像素在240密度下显示约0.67英寸,在320密度下显示约0.5英寸。所以就出现了电脑上的一个像素在不同手机上看起来实际大小不一样的情况。那么如何让“设计效果”在不同手机上看起来一样呢?
我们假设一个像素以160的密度显示在一个密度之内,也就是一寸。那么在240的密度水平下,一英寸内显示需要多少像素呢?答案是1.5像素(按照上面的比例换算)。
知道了这个关系,接下来就是图标的制作了。
2.关于切图。
有几个关于切割地图的建议:
第一,长宽应该是3的倍数(根据android中logo图标的推荐尺寸得到的最小公约数是48(mdpi),72(hdpi),96(xhdpi))。
第二,长宽最好是偶数。因为奇数在进行比例压缩时可能会有问题。
再次,根据以上两项,长宽都是6的倍数就比较理想了。
第四,如果可以在不改变设计意图的情况下拉伸,比如纯色背景,用安卓的9path工具做一张. 9的图。
3.关于图标的改编。
那么接下来的一切都与设计稿无关。在裁剪贴图的基础上,根据屏幕密度、像素和实际尺寸的比例关系。如果设计部门以480*800的分辨率完成设计图纸,并对图纸进行裁剪,需要适应720*1280的屏幕怎么办?按照比例,两者的关系是2:3,所以你需要按照1.5倍的比例做一个图标。比如从480*800的设计稿中剪下一张20*20像素的图片,需要做一个放大到30*30像素的图标,这样同样的图标在480*800和720 * 65438的屏幕上。同理,如果需要适配xxhdpi,需要在20*20的基础上做一个缩放到40*40像素的图标。
4.关于图标的目录,我们把480*800剪切的图片放在drawable-hdpi目录,2:3放大的图标放在drawable-xhdpi目录,2倍放大的图标放在drawable-xxhdpi目录。
Android会根据手机的密度优先查找对应目录的资源。
比如分辨率为408*800的手机,密度为160,会自动加载drawable-hdpi目录下的图标。
如果720*1280密度为240,则自动加载drawable-xhdpi目录下的图标。如果没有这样的文件夹,找到最接近240的对应密度文件夹。
第三,其他
接下来的估计会让你失望。按照上面的步骤,不能完全解决适配的问题,只能大致适配。即使按照以上步骤进行适配,在手机上的实际效果也是不一样的。
比如魅族MX3的分辨率是1080*1800,标准情况下密度是480,但是它的密度大概是524,接近480,也就是会搜索drawable-xxhdpi的资源下的文件。也就是说,如果你把图片以480*800的分辨率剪切,然后按下放大两倍的图标,在这个手机上显示的效果还是比实际的要小。
另一个问题是540*960或640*960,它们的密度很可能是或接近240或320。所以,从480*800的设计稿上切下来并改编制作的图片,在这些手机上显示的实际尺寸可能更大,也可能更小。