https://www.jianshu.com/p/a4b8e4c5d9b0?tdsourcetag=s_pcqq_aiomsg
UI适配有两个目的:
其一,就是适配的效率,将设计图纸转化为Android 界面
其二,保证在不同尺寸和分辨率的手机上保持一致。
像素适配的问题是:不同手机的分辨率都是不一样的,相同尺寸在不同手机上显示的大小不一样。
dp: px = dp(dpi/160),dpi是像素密度。
相同分辨率,一般dpi是一样的。这样就能保证相同分辨率下不同尺寸的手机表现一致。(相同像素,手机不同尺寸,相当于等比例拉伸)
同分辨率下,dpi将会不同。1080720为320,19201080为480.这样相同dp,表现出不同的像素。
通过dp加上自适应布局和weight比例布局可以基本解决不同手机上适配的问题,这基本是最原始的Android适配方案
相同像素的手机也有可能有不同的dpi.
宽高限定符适配
那就是需要精准命中才能适配,比如1920x1080的手机就一定要找到1920x1080的限定符,否则就只能用统一的默认的dimens文件了。而使用默认的尺寸的话,UI就很可能变形,简单说,就是容错机制很差。
鸿洋大佬的适配方案的项目也来自于宽高限定符方案的启发。
1 那就是整个适配工作是有框架完成的,而不是系统完成的,一旦使用这个框架,未来一旦遇到很难解决的问题,替换起来是非常麻烦的
2 我们自定义的控件可能会被影响或限制,可能有些特定的控件,需要单独适配