首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么30x (1dp + 5dp)不是180 5dp?

为什么30x (1dp + 5dp)不是180 5dp?
EN

Stack Overflow用户
提问于 2022-01-25 14:32:27
回答 1查看 34关注 0票数 0

我正在制定一个30分钟的时间表。因此,我放置了30 LinearLayouts(水平),每一个1dp宽视图,这是彩色和一个5dp宽视图的距离到下一个滴答(彩色视图)。我确信每个LinearLayout都将layout_width设置为6dp。因此,我假设我的总宽度为180 So,但正如您所见,它不适合180 So宽容器视图(ConstraintLayout)。ConstraintLayout的宽度必须精确到185 be。

我最初以为这是编辑器中的一个显示问题,但在我的手机上是一样的。

当我在编辑器中选择另一个显示时(例如,Pixel 2 XL和560 6dp ),30x6DP适合180 6dp。与像素3a与440 this,我有这个问题。

为什么会发生这种情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-25 14:44:59

dp是一个浮点单位,但为了呈现目的,它被四舍五入为整数。

像素2 XL的密度为3.5xxxhdpi,因此屏幕上的6dp为21 on。

像素3a有2.75xhdpi密度,所以6dp是16.5px,被四舍五入到17 so。

如果使用mod 4或mod 8像素网格,就不会出现这样的舍入错误。也就是说,使您的dp大小乘以4(或8) dp。

如果您想要有6dp,出于这种目的,我可能会做一个自定义视图,它在内部完成所需的计算,而不对每个位使用单独的视图,从而导致视图快速到像素网格。

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

https://stackoverflow.com/questions/70850479

复制
相关文章

相似问题

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