最近看到今日头条一篇关于Android屏幕适配的文章https://mp.weixin.qq.com/s/d9QCoBP6kV9VSWvVldVVwA
分享一下个人理解:
由于手机屏幕宽高比类型各种各样,所以只能以宽或者高其中一个维度进行适配
假设设计图宽360dp
因为px=dp*density,所以只要让所有的设备density=手机宽的像素/360,就能做到设计图px值正好是dp值
最终方案:
在Activity的onCreate中设置density
//修改系统的density=手机宽的像素/设计图宽dp
int targetDensity=getResources().getDisplayMetrics().widthPixels/360;
getResources().getDisplayMetrics().density=targetDensity;
getResources().getDisplayMetrics().scaledDensity=targetDensity;
//修改系统dpi(像素密度) 由density=dpi/160推得dpi=density*160
int targetDpi=targetDensity*160;
getResources().getDisplayMetrics().densityDpi=targetDpi;
但是,可能会出现字体过小,文章最后给出的方案:
image.png
网友评论