Android屏幕适配

最近看到今日头条一篇关于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;

但是,可能会出现字体过小,文章最后给出的方案:


Android屏幕适配_第1张图片
image.png

你可能感兴趣的:(Android屏幕适配)