2010-12-16 61 views
11

我有一个最终的应用程序设计,使我在Photoshop中的一切都在PX测量。 现在我意识到Android应用程序正在使用DP来处理字体大小和其他内容。Photoshop设计从px到dp

有什么办法可以将PX转换为DP?

回答

0

像素是PX,DP或DIP是与设备无关的像素。我不认为你需要转换这些。但是您可以使用android工具中的draw9patch工具使用可缩放的9patch图像。

5

从Android支持的尺寸单位this list,这里的DP的描述:

密度独立像素 - 即是基于屏幕的物理密度的抽象单元。这些单位相对于160 dpi屏幕,所以一个dp是160 dpi屏幕上的一个像素。 dp与像素的比率将随着屏幕密度而变化,但不一定成正比。注意:编译器同时接受“dip”和“dp”,但“dp”与“sp”更加一致。

这意味着像素与DP之间的“转换”将不一致 - 在某些设备上,比率可能为1DP = 160px,但理论上它可能是任何东西。当你将一个按钮的宽度设置为100dp(因为它会动态呈现),这是非常好的,但是当你的图像必须具有固定的大小时,它会出现问题。

在“Supporting Multiple Screens”上阅读本页 - Android有一些名为resource directory qualifiers的内容,可让您创建图像资源的大小和密度特定版本。例如,对于低密度屏幕,您可以创建较小版本的图像并将其放在drawable-ldpi目录中(或drawable-hdpi用于高密度屏幕)。


TL;博士你实际上不能“从PX转换为DP”(因为比例是不固定的),但你可以创建图像的多个版本,并告诉安卓与资源使用目录限定符。

+0

那我怎么计算字体大小? 我知道在我的布局(PSD),他们是25px。但是我需要为开发人员重新计算这个大小。 文字不应该作为图像,因为这个应用程序是多种语言。 – Dammark 2010-12-16 12:37:04

+0

@Dammark对于字体大小,您应该使用'sp'(与刻度无关的像素)。这与'dp'基本相同,但是由用户的字体大小首选项缩放(有关详细信息,请参阅上面的维度单位列表)。 – Donut 2010-12-16 12:49:26

12

在一个更实际的音符,你必须在提高工作和fidelty几个选择:

  1. 已经扩大为每英寸160点你的资源,把它们放在res/drawable目录,让OS规模他们看在设备上。

  2. 制作您的资源的两个副本:您的res/drawable中的每英寸点数为160,并且您的res/drawable-hdpi目录中的每英寸点数为240点。让OS从相当接近的数字开始为具体设备进行缩放。

  3. 确定您不需要任何缩放并具有原始像素,因此请将您的资产置于res/drawable-nodpi目录中。这意味着在320x480(像素)的情况下,一部手机的图形可能是2英寸x 3英寸,而另一个屏幕上的图形可能只有1英寸x 3英寸x 2英寸。

  4. 使用draw9patch工具为您的工作指定确切的缩放策略。这对于保持盒子的角落不受缩放的“锯齿”影响以及使全屏图形适应不同的长宽比非常有用。

  5. 为您关心的每个设备制作单独的图形,并为其余的可缩放图形回退。你将需要超越狂热者挥舞着风格指南,试图说服你不要这样做。

哦,作为一个疑难杂症,指定sp为您的字体,而不是dppt。 10点字体将是22 sp字体[= 10 *(160/72)或=点数乘以2.222]。 sp单位可根据用户对小型,中型或大型字体的喜好进行缩放。

+0

伟大的建议,谢谢。 – 2014-07-19 09:50:34

0

我有同样的问题,但现在得到了解决方案。

为什么你不使用在线转换器来查看哪些dp或px你必须为android设备的不同分辨率?

看到这个链接:this link这帮助我很多,也帮助你。

享受编码。