Android 屏幕适配以及autoSize的原理.md

AndroidAutoSize的原理

px = dp * density;

根据百分比适配的话,
如果设计稿给的是1080x1920,那么宽就为360dp,像素为1080px,density为3,占满100%

如果是在720x1280的话,360dp * density = 720,所以这个density为2,将density修改为2就可以了

如果是在1080x1920的设计图中,150px,也就是50dp,占比 150/1080

那么在720x1280中,50*mDensity/720 = 150/1080,所以mDensity = 2,根据标准的图,动态修改mDensity,百分比适配

DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
displayMetrics参数如下:

widthPixels:屏幕宽度
heightPixels:屏幕高度
densityDpi:屏幕密度,每英寸的像素数
density:密度比值,和densityDpi相关,其实就是densityDpi/160得出来的值(160密度就是谷歌定的一个密度标准),不同手机dp换算px就是通过该值。
scaledDensity:同density,用于文字缩放的计算,也就是sp
xDpi:水平方向的真实密度
yDpi:垂直方向的真实密度

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。