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:垂直方向的真实密度