如何在Layout中将PX转换为DP

dev*_*v90 3 android android-layout android-studio

设计师给了我一个PSD文件,他为1080X1920 resolution

在PSD中,他定义了header高度应该是52pxSlider高度应该是350px等等。

在布局中,当我写layout_height=350dp它时,它占据了很大的高度并覆盖了一半以上的屏幕。

我正在使用默认布局来完成此任务。

请指导我如何定义Height的布局DP相对于PX

Sot*_*tti 9

看起来缺少设计者-开发者流程。您获得的设计不适合移动设备(Android 和 iOS)。我建议您查看一些工具以获得良好的工作流程。

草图

齐普林

请阅读这篇文章你们俩:

DPI 设计师指南

在 Android 中,您需要在 dps 中工作,并且需要在 dps 中给出设计。如果您获得以像素为单位的设计,您必须与设计师达成一致,即 1px 等于 1dp,换句话说,设计师在MDPI基础上工作,其中 1dp 等于 1dp。

因此,最简单的方法是您的设计师需要在360x640 像素而不是 1080x1920的屏幕上工作。现在您可以忘记将像素转换为 dps 了,反之亦然,因为 1px 对您来说就是 1dp。对于您的设计师来说也将更容易,因为他需要从指南到设计工具,而且他不再需要将 dps 转换为像素。每次他在指南(到处都是)中读取 48 dps 时,他知道他必须在设计工具中的 360x640 画布中将其读取为 48 像素。

笔记

360x640 是 dps 中常见的屏幕尺寸(Galaxy S5、Nexus 5 和许多其他),因此现在被用作参考。请意识到您的设计师无法为每个设备的每个布局尺寸中的每个组件提供准确的尺寸。所以像工具栏高度(通常是 56dp)这样的东西很容易转换到每个设备上,但是你在他的设计中设置的工具栏宽度(如果你按照我的建议是 360)对你来说完全没有用,因为这取决于真实的设备。Galaxy S5 和 Nexus 5 是 360,但 Nexus 4 是 384,nexus 6、6P 和 5X 大约是 413……实际上还有更多!!

仅针对一种设备或一种屏幕尺寸进行设计过于简单且有问题。请注意,您必须为多窗口开发响应式布局。