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;

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


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

推荐阅读更多精彩内容