android - Layout中如何将PX转DP

标签 android android-layout android-studio

设计师给了我一个 PSD 文件,他为 1080X1920 分辨率创建了它

在PSD中他定义header高度应该是52pxSlider高度应该是350px等等上..

在布局中,当我编写 layout_height=350dp 时,它占用了很多高度并覆盖了超过一半的屏幕。

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

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

最佳答案

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

Sketch

Zeplin

请阅读这篇文章:

Designer's guide to DPI

在 Android 中您需要在 dps 中工作并且您需要在 dps 中给出设计。如果你得到的是像素设计,你必须与设计师达成协议(protocol),即 1px 等于 1dp,换句话说,设计师正在处理 MDPI。 1dp 等于 1dp 的基础。

因此,最简单的方法是您的设计师需要在 360x640 像素而不是 1080x1920 的屏幕上工作。现在你可以忘记将像素转换为 dps 和其他方式,因为 1px 对你来说就是 1dp。对于您的设计师来说也会更容易,因为他需要从 guidelines 开始到设计工具,他就不需要再将dps转化为像素了。每次他在指南中读取48 dps (which is everywhere)他知道他必须在设计工具的 360x640 Canvas 中将其读取为 48 像素。

注释

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

仅针对一种设备或一种屏幕尺寸进行设计过于简单且存在问题。请注意,您必须开发 responsive布局准备好 multiwindow .

关于android - Layout中如何将PX转DP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37231539/

相关文章:

android - 导出已签名的应用程序时出现 facebook sdk 3.8 lint 错误

android - 使 View 填充中间的空白,但为其底部的 sibling 留出空间

android-studio - 无法解决: uz.shift:colorpicker:0.5

java.lang.ClassNotFoundException : Didn't find class . ..在路径上:DexPathList

Android:如何将 ArrayList<object> 从一个 Activity 传递到另一个 Activity

android - Tab.setCustomView() 添加新 View 而不是替换它们

android - 带有 SwipeRefresh 的 ListView 上的 MarginLayoutParams ClassCastException

java - Android Studio - 代码生成仅显示版权作为选项

java - 在 android studio 中运行时适配器使用错误的布局

android - 向上虚拟键盘