Assign px value to layout across all Android devices
我正按照一套规范设计布局。我基本上需要在布局和Android设备之间留出一些空间。下图仅供参考
我正在使用以下网站将给定像素转换为dp值AndroidPixelConverter
我在xxxhdpi列中给出px值并得到它各自的dp值,我把它放在我的xml布局中。
我正在测试的主要手机是三星S4和Nexus5
以下是我的问题:
根据这个网站Nexus5和三星S4属于xxhdpi分辨率,但如果我在上面提到的AndroidPixel Converter网站中使用xxxhdpi列,我仍然得到正确的像素值。为什么是这样 ?
Nexus5有软导航栏,三星S4有硬按钮作为导航。如何检测它并相应地为我的布局赋值。如果我没有错,导航栏的高度为144px,如果不存在则会更改布局尺寸。我怎么处理这个?
最后,我正在遵循正确的方法吗?如果不是,请以正确的方式指导。
P.S:我正在寻找所有设备的像素完美布局。可能吗 ?
-
您确定需要以像素为单位留出空间吗?这实际上是一个奇怪的要求。在不同的设备密度上,顶部的115个像素的范围可以从几乎一英寸(在ldpi设备上)到约1/6英寸(在xxxhdpi设备上)。
-
您好,请查看developer.android.com/guide/practices/screens_support.html
-
"我正在寻找像素完美的布局":Android设备没有这样的东西,因为有数百个不同的制造商和数千种不同的设备。 Android不是物理设备规范 - 它是一个开源的操作系统,可以用于私人或商业用户 - 屏幕尺寸会有所不同,屏幕宽高比会有所不同。尝试使用绝对像素将失败 - 使用百分比尺寸,Android将相应调整。普通用户不会注意到不同设备之间的细微差异。
-
@TedHopp我正在将它转换为dp值,这些值很好吗?
-
@Squonk感谢您的评论。
您需要与您的设计师交谈,并以不同的方式处理事情。 你永远不想像这样在px中指定布局。 它不会扩展 - px可以是任何大小。 回到他身边然后得到一个dp号码(dp基本上是1/160英寸)。 用dp设计整个东西。 然后让手机将其转换为px。
如果你设计像素,它将无法正常工作。 设计物理尺寸(dp),让设备翻译。
此外,您不能假设导航栏的高度。 在dp和px方面,它可以并且确实在设备之间有所不同。
-
我不是按照px值设计的。 我正在将它转换为上面提到的AndroidPixelConverter网站的dp值。 它应该工作正常吗?
-
不,你是倒退了。 在dp中指定设计中的所有内容,而不是px。 你为什么要转换,然后让它转换回手机? 最低级别的手机本身工作在px而不是dp,它必须翻译。 决定你想要在dp中有多大,并指定一个单一的布局。