如何在布局中将PX转换为DP

时间:2016-05-14 20:31:04

标签: android android-layout android-studio

Designer已经给了我一个PSD文件,他为1080X1920 resolution

创建了它

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

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

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

请指导我如何在Height中针对DP

定义布局中的PX

1 个答案:

答案 0 :(得分:4)

看起来缺乏设计师和开发者流程。您获得的设计不适合移动设备(Android既不是iOS)。我建议你看看几个工具,以获得良好的工作流程。

Sketch

Zeplin

请你读这篇文章:

Designer's guide to DPI

在Android 中,您需要使用dps ,并且您需要以dps为单位进行设计。如果您获得像素设计,您必须与设计师达成协议,1px等于1dp,换句话说,设计师正在研究MDPI,其中1dp等于1dp。

所以最简单的方法是你的设计师需要在 360x640像素而不是1080x1920 的屏幕上工作。现在你可以忘记将像素转换为dps,反之亦然,因为1px对你来说是1dp。对于你的设计师来说也会更容易,因为他需要从guidelines转到设计工具,他不再需要将dps翻译成像素。每次他在指南(which is everywhere)中读取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 .... and actually there's much more!!

仅针对一个设备或一个屏幕尺寸进行设计过于简单且有问题。请注意,您必须为responsive开发multiwindow布局。