屏幕适配之今日头条适配(逻辑清晰简单)

本文详细讲解了如何在不同屏幕密度下使用drawable选择器、shape标签和帧动画,通过密度值和分辨率密度比来确保UI在各种设备上的一致性,以及今日头条适配策略,包括安卓AutoSize库的配置和实践实例。

屏幕适配基础图标

drawable 选择器, shape标签 ,帧动画列表 密度值 分辨率 密度比
drawable-ldpi 低分辨率目录 120 240320 0.75 公式 密度值除160
drawable-mdpi 中等分辨率目录 160 320
480 1
drawable-hdpi 高分辨率目录 240 480800 1.5
drawable-xhdpi 特高分辨率目录 320 720
1280 2
drawable-xxhpi 超高分辨率目录 480 1080*1920 3
drawable-xxxhdpi 超超高分辨率目录

在屏幕密度是120的手机上 1dp=0.75px
在屏幕密度是160的手机上 1dp=1px
在屏幕密度是240的手机上 1dp=1.5px
在屏幕密度是320的手机上 1dp=2px
在屏幕密度是480的手机上 1dp=3px
在屏幕密度是640的手机上 1dp=4px

宽度是100px 160 100dp
宽度是100px 240 66.7dp
宽度是100px 320 50dp
宽度是100px 480 33.3dp
宽度是100px 640 25dp

适配市场上主流的手机屏幕(流量研究院,全域罗盘)

今日头条适配

大概的实现原理:
px = dp * density
当前设备屏幕总宽度(单位为像素)/ 设计图总宽度(单位为 dp) = density

mPx:当前设备屏幕总宽度(变化)

mDp:设计图总宽度(不变)

mDensity: mPx/mDp 系数比(变化)

1.假设当前设备的屏幕总宽度为1080px,当前设计图总宽度为375dp,根据以上计算出mDensity为2.88

屏幕上有一个50dp50dp的控件,转化为px是50dp2.88=144px

144px/1080px=0.133 即此控件占屏幕的实际比例为0.133

2.假设当前设备的屏幕总宽度为1440 px,当前设计图总宽度为375dp,根据以上计算出mDensity为 3.84

屏幕上有一个50dp50dp的控件,转化为px是50dp 3.84= 192px

192px/1080px=0.133 即此控件占屏幕的实际比例为0.133

由此可看出,随着屏幕大小的变化,控件的实际占比是一样的

第一步:

1.使用步骤:

implementation 'me.jessyan:autosize:1.2.1'

2.声明设计图中的尺寸(如果项目完全使用副单位, 则可以直接以像素为单位填写 AndroidManifest 中需要填写的设计图尺寸, 不需再把像素转化为 dp)

 <manifest>
<application>            
    <meta-data
        android:name="design_width_in_dp"
        android:value="360"/>
    <meta-data
        android:name
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值