Android用命名含sw的文件夹做屏幕适配原理

基本概念

说到用命名含sw的文件夹做屏幕适配之前先说以下几个基本概念:

屏幕尺寸

屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米
比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等

屏幕分辨率

屏幕分辨率是指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素,如1960*1080。目前市场主流分辨率有八种:1280*720、1920*1080、2560*1440、800*480、1184*720、960*540和854*480。

dpi(Dot per inch)

dpi是屏幕像素密度,假如一英寸里面有160个像素,这个屏幕的像素密度就是160dpi。mdpi、hdpi、xdpi、xxdpi用来修饰Android中的drawable文件夹及values文件夹,用来区分不同像素密度下的图片和dimen值。
那么如何区分呢?Google官方指定按照下列标准进行区分:

名称 像素密度范围 图标尺寸
mdpi 120dpi ~ 160dpi 48*48px
hdpi 160dpi ~ 240dpi 72*72px
xdpi 240dpi ~ 320dpi 96*96px
xxdpi 320dpi ~ 480dpi 144*144
xxxdpi 480dpi ~ 640dpi 192*192

dp/dip

dip和dp是一个意思,都是Density Independent Pixels的缩写,即密度无关像素,规定以160dpi为基准,1dip=1px,如果密度是320dpi,则1dip=2px,以此类推。

desity

密度,表示一个dp多少个像素。desity = dpi/160,dp = desity*px

SW的适配原理

SW全称是Smallest Width,表示最小宽度,例如一个适配文件夹values-sw411dp表示如果手机的最小宽度是411dp,那么就命中该文件夹,使用的配置都是这个文件夹下的。代码中可以用getResources().getConfiguration().smallestScreenWidthDp获取sw

sw的理论上计算原理

其实这就是一道初中计算题,例如:已知一个5.1寸手机的分辨率为1440*2560(2k屏),求sw?
解析:sw = 1440/desity,desity = dpi/160,dpi = 对角线像素/屏幕尺寸,对角线像素用勾股定理求,多么简单的一道题。

线=14402+25602
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值