首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android - dp如何在不同尺寸的设备中占据不同的空间?

Android - dp如何在不同尺寸的设备中占据不同的空间?
EN

Stack Overflow用户
提问于 2020-10-05 07:19:00
回答 2查看 754关注 0票数 0

我搜索了很多关于dp,px,inch,pt等的信息。

根据我对“dp”的理解:

指定'dp‘只是让Android为不同屏幕密度的设备绘制相同大小的视图的一种方法。对于中等密度的设备,每个“dp”将占用一个像素。对于高密度设备--它的像素更小,每英寸可以容纳更多像素,'dp‘将占用超过一个像素。对于低密度设备--它的像素更大,每英寸的像素更少,'dp‘所占的像素将少于一个像素。

但我还读到的是,“dp”所占的空间因屏幕大小而异,即对于小屏幕,“dp”占用的空间较小,而对于大屏幕,“dp”将占用更大的空间。这到底是怎么回事?根据我对“dp”的理解,在屏幕大小不同的设备中,它应该占据相同的空间。例如,240 dpi的大屏幕将占用1.5像素,对于240 dpi的小屏幕也是如此。那么,“dp”怎么会为不同的屏幕大小占据不同的空间呢?

我对“dp”的理解中遗漏了什么?请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-05 08:30:48

Android定义了160的基线dpi,它用作参考来计算所有屏幕密度的大小:

代码语言:javascript
复制
pixel_size * (device_dpi / baseline_dpi) = result in "dp" units

>> or the other way around 

dp_size / (device_dpi / baseline_dpi) = result in "pixel" units

因此,240 device设备中的1个像素相当于1.5dp单位:

代码语言:javascript
复制
1 * (240 / 160) = 1.5

另一方面,240 way设备中的1.5dp单位相当于1个像素。

代码语言:javascript
复制
1.5 / (240 / 160) = 1

需要知道的重要事实是,160是用于所有DPI的参考的基线。因此,随着dp单元的增加/减少,所需的像素区域将被转换为保持相同的尺寸大小,而不管设备屏幕如何。

正式文件中的更多信息。

更清楚:

显示大小与"dp单元“无关。显示大小就是显示画布有多大。新闻部的屏幕定义了多少个点适合1平方英寸。"dp单元“是一个抽象的单元,根据设备的DPI,它被缩放(向上或向下),通过使用160作为基准参考,在任何屏幕大小上提供”均匀尺寸“。

票数 0
EN

Stack Overflow用户

发布于 2020-10-05 08:02:37

在Android操作系统上,与设备无关的像素相当于160 dpi屏幕上的一个物理像素。根据这个定义,您可以理解屏幕大小与屏幕大小无关,因为刻度已经固定为160 dpi。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64204020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档