1。为什么适配 (1)厂商多,设备多,屏幕的尺寸,分辨率多。 (2)大多数的计算方式: dpi等于(屏幕宽的平方屏幕高的平方)整体开根号(单位是px),然后除以屏幕尺寸(单位是英寸)。 densitydpi160, pxdensitydp。(我们通常用的是dp去适配,但是绘制view的最终单位都是px,也就是因为dp和px之间的转换导致了适配的不完全) 因为dpi是由屏幕真实的分辨率和尺寸得来的。 注:一些手机并不是这种规范的计算方式,导致适配更加复杂。 2。基础知识 (1)屏幕尺寸:屏幕尺寸指屏幕的对角线的长度(物理长度),单位是英寸,1英寸2。54厘米 (2)屏幕分辨率(屏幕宽高):屏幕分辨率是指在纵横向上的像素点数,单位是px,1px1个像素点。一般以纵向像素横向像素,如480320。 (3)屏幕像素密度(单位dpi):计算方式(屏幕宽的平方屏幕高的平方)整体开根号(单位是px),然后除以屏幕尺寸,就是屏幕分辨率勾股求对角线然后除以尺寸 (4)density:屏幕的逻辑密度,是密度无关像素(dp)的缩放因子,160dpi是系统屏幕显示的基线,1dip1px densitydpi160, 160为标准屏幕像素密度 (5)px:像素,基本单位,绘制view的最终单位都是px (6)dpdip:密度无关像素 (7)sp,即scaleindependentpixels,与dp类似,但是可以根据文字大小首选项进行放缩,是设置字体大小的御用单位。 3。方法 A。基本操作 1wrapcontent,matchparent 2LinearLayout,RelativeLayout 3图标使用svg格式(svg的图标大小约是png的14) 4。weight 5。layout600x400 6。。9图可指定拉伸区域 a。限定符(layoutlarge): 1尺寸:small,normal,large,xlarge 2屏幕方向:land,port 3屏幕宽高比:long(比标准屏幕宽高比明显的高或者宽的这样屏幕),notlong(和标准屏幕配置一样的屏幕宽高比) 4屏幕的最小尺寸:屏幕可用区域的最小尺寸,是指屏幕可用高度或宽度的最小值(sw600dp) 5屏幕可用宽度:指定资源使用时需要的最小宽度,当前是否需要显示多屏布局(w720dp) B。今日头条适配 正常的公式:densitydpi160, 今日头条公式:当前设备屏幕总宽度(单位为像素)设计图总宽度(单位为dp)density 屏幕的总px宽度density屏幕的总dp宽度、 所以屏幕的总px宽度屏幕的总dp宽度 C。smallestWidth(valuessw640dp) 插件:ScreenMatch 系统只会寻找小于或等于当前设备最小宽度 按照百分比缩放布局 不区分屏幕方向的 (如果想让屏幕宽度随着屏幕的旋转而做出改变(valuesw640dp)) (如果想区分屏幕的方向来做适配该怎么办呢?那就只有再根据屏幕方向限定符生成一套资源文件咯,后缀加上land或port即可,像这样,valuessw400dpland(最小宽度400dp横向),valuessw400dpport(最小宽度400dp纵向)) smallestWidth限定符屏幕适配方案只是把dimens。xml文件中的值从px换成了dp,原理和使用方式都是没变的