基础概念
匹配大概分图片匹配与布局匹配.首先了解下关于尺寸的一些概念
px:像素,就是一个光点。
ppi,dpi:pixel per inch,dot per inch,两个差不多的概念,都是每英寸像素点数
dp:android屏幕无关像素(后面有个sp专门用来字体的放大缩小)
常见像素密度与drawable文件夹的对应关系
以160dpi为标准android对于各文件夹图片的选择策略
1.首先寻找相应目录,存在即使用
2.没找到就去像素密度更高一级的文件夹查找,一直延续到找到
3.如果到xxhdpi仍未找到,则往低一级文件夹查找
4.根据dpi的排序进行查找(现在已不维护ldpi的资源了)
各文件夹的图片的缩放策略
根据dpi的比例来进行缩放,比方在mdpi的机子上使用xhdpi的图,这张图就会被缩小1倍,这里就有个切图技巧了,因为放大是需要拉伸的会失真模糊,所以一般都采取缩小的策略,所以切图的时候竟然使用较大参考模板切图(xhdpi),这样节省时间
dpi的对应关系
(硬性计算根据原理是)sqrt(widthPx2+heightPx2)/x英寸 前提在知道分辨率及屏幕尺寸情况下,一般情况由于英寸差距较小,我们会采用目视匹配来选定他的ppi
- mdpi:320*480-----------------------160dpi
- hdpi:480*800------------------------240dpi
- xhdpi:720*1280---------------------360dpi
- xxhdpi:1080*1920------------------480dpi
图片的适配
对于ImageView因为有scalType我们可以使用这个参数对图片的现实进行调整
- center:小于控件则居中显示,大于控件则截取中间那块(哪一边不够,哪一边取居中)
- centerCrop:小于控件则按比例扩大直到所有边大于等于控件的对应边,大于控件的话是一定比例缩小,直到所有边小于控件的对应边
- centerInside:小于控件则完整居中显示,大于控件按比例缩小直至所有边都小于控件对应边(注意区别)
- fitCenter:以宽度维基准放大缩小
- fitStart,fitEnd:放大缩小原则同上显示基准位置分别为左上角,右下角
- fixXy:铺满控件,按不同比例拉伸
另外对于某些特殊的场景比方聊天图标我们可以使用.9图,或者使用shape的矢量图
布局匹配
学过网页的大概都知道百分比布局,这样的好处就是可以适应不同大小的浏览器页面,防止页面变形,在android上曾经出现过类似布局,后来没有推广开来,那么我们的适配就是基于屏幕的自适应了
1.这里就要用到dp,sp密度无关单位,具体计算为
px=(dpi/160)
注意sp是字体专用的
2.尽量使用Relativelayout这种根布局,或者也可以根据weight来实现百分比布局,请自行百度
3.使用match_parent,wrap_content代替具体的数值
网友评论