大家好,又见面了,我是你们的朋友全栈君。
AndroidAutoSize的原理
px = dp * density;
根据百分比适配的话,
如果设计稿给的是1080×1920,那么宽就为360dp,像素为1080px,density为3,占满100%
如果是在720×1280的话,360dp * density = 720,所以这个density为2,将density修改为2就可以了
如果是在1080×1920的设计图中,150px,也就是50dp,占比 150/1080
那么在720×1280中,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:垂直方向的真实密度
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139486.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...