理解android分辨率限定符 layout-sw360dp

首先,我们来看看单位dp是怎么一回事,dp是一种单位,使用它,你可以在高、低分辨率上获得一样的空间表现,也就是说,它是像素无关的。

dp计算公式:160*pix/ppi(pix是你要计算的高度或者宽度的分辨率,ppi是像素密度,超过320就是retina display)

比如我们要在layout-sw360dp(表示,如果最小宽度满足360dp,则加载这个里面的layout。)

 

比如note2 分辨率是720*1280,ppi是267

安卓根据手机ppi 分为  160  240 320 480

超过了就按照更高的ppi档,因此计算采用的ppi是320。

 

因此,可以得出 note2,在宽度上的dp是 160*720/320 = 360

因此会加载sw360dp里面的数据。

 

我们那个对比例子,sony的 tablet S,他的ppi :160(简单计算ppi网站,输入宽高 像素,屏幕尺寸,得到ppi)

宽高:1280*800

我们的计算公式 160*1280/240 = 853

实际体验中,发现值在800~820之间,不知道为啥?

我们设置sw800dp之后,发现note使用的默认布局,而tablet S使用的是sw800dp下的布局。

 

posted @   谪仙  阅读(3525)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示