Android XML 1dp不等于1px

时间:2014-12-22 08:02:56

标签: android xml android-layout

我尝试从PSD文件制作XML布局。现在PSD文件的尺寸为320x1440。我已经读过android.developers,mdpi(160dpi)的分辨率为320x480。所以我假设在那种情况下我的PSD文件中的1px等于1dp。这就是理论。

但我发现差异很小 - 特别是在字体大小方面。例如我在项目中有些字体有24px大小我需要将其除以2(如320dpi但PSD文件为320px)。另外,如果我的PSD文件中有300px高度的元素,那么在android studio中它不是300dp。

我试过google回答,但没有运气。任何帮助深表感谢。

1 个答案:

答案 0 :(得分:5)

来自this answer

  • px 是一个像素。
  • sp 是与比例无关的像素。
  • dip 是与密度无关的像素。 enter image description here

你会用

  • sp了解字体大小
  • dip用于其他一切。

    浸== DP

来自Android Developers center

  

<强> PX
  像素 - 对应于屏幕上的实际像素。

     

<强>在
  英寸 - 基于屏幕的物理尺寸   1英寸= 2.54厘米

     

<强>毫米
  毫米 - 基于屏幕的物理尺寸。

     

pt (取决于屏幕的实际尺寸)   点数 - 基于屏幕物理尺寸的1/72英寸。

这将有助于您进一步了解。

  

enter image description here

     

<强> DP
  密度无关像素 - 一种基于屏幕物理密度的抽象单元。这些单位相对于160 dpi的屏幕,因此一个dp是160 dpi屏幕上的一个像素。 dp与像素的比率将随着屏幕密度而变化,但不一定成正比。注意:编译器同时接受&#34; dip&#34;和&#34; dp&#34;,虽然&#34; dp&#34;更符合&#34; sp&#34;。

     

<强>属
  与比例无关的像素 - 这与dp单位类似,但它也可以根据用户的字体大小首选项进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户的偏好调整它们。