今日头条屏幕适配笔记

原文链接

适配原理(以适配屏幕宽度为例)

让所有设备的宽度dp值等于UI设计图的宽度dp值,目前适配都是以dp单位进行适配。

由px = density * dp; 得知px 每个设备值不一样,所以只能通过改density,使得每个设备的宽度dp值等于UI设计图dp值。

基础知识
  1. 计算公式
    android中的dp在渲染前会将dp转为px,计算公式:
    density = dpi / 160;
    px = dp * (dpi / 160);
    dpi 是整个屏幕的屏幕密度,dp是分宽高,对应px宽高
  1. 源码变量
    先来熟悉下 DisplayMetrics 中和适配相关的几个变量:
    DisplayMetrics#density 就是上述的density
    DisplayMetrics#densityDpi 就是上述的dpi
    DisplayMetrics#scaledDensity 字体的缩放因子,正常情况下和density相等,但是调节系统字体大小后会改变这个值
如何根据远程手机截图算出屏幕密度dpi方式,纠正屏幕未适配问题

使用PxCook 软件,标注图片中的长度,以dp和px的两个值做切换,即可根据px = density * dp。 算出 density(图1)再根据 density = dpi / 160 即可算出屏幕密度dpi。

图1
使用模拟器模拟各种设备进行屏幕适配测试

通过模拟器动态设置界面显示参数,进行屏幕适配测试。如图二进行设置,即可添加各式各样的设备进行屏幕适配,便不再需要多台真实安卓硬件设备,图三 四即为添加好的各种屏幕模拟器。


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

推荐阅读更多精彩内容