Android屏幕分辨率px和dp是什么?

3
对于图标,它们的尺寸为: 36x36像素 48x48像素 72x72像素 96x96像素
对于屏幕大小,它们是: 426x320像素 470x320像素 640x480像素 960x720像素
但我想我可能从网站上听说过这些屏幕尺寸是以dp为单位的。 我知道“dp”是尺寸像素。 但我的问题是:当我进入Adobe Illustrator为小屏幕尺寸(426x320)创建背景时,我应该使用单位PIXELS还是需要将这些数字转换为其他内容。

你如何称呼“小屏幕的背景”?是要放置在背景中的图片吗?还是一个可绘制资源(最好是9-patch)? - EricLarch
1个回答

11

dp不是“dimmensional pixels”,而是“(density) independent pixels”(请参见此处此处)。它们基于设备的密度,而不是分辨率。

例如,对于应用程序图标,它始终为48 dp,因为在mdpi(160 dpi)上,48 dp == 48像素。因此,在hdpi(240 dpi)上,它是48 * 1.5 = 72像素,在ldpi(120 dpi)上是48 * 0.75 = 36,在xhdpi(320 dpi)上是48 * 2 = 96像素。

如果您希望显示图像的最佳结果,请根据目标设备的dpi级别创建图像。这意味着对于每个dpi级别,您需要创建一个最适合该级别的图像,并将其放入“res”文件夹中的正确文件夹中。

这可能需要4倍的工作量,您可能只想使用单个文件。这完全取决于您看到的结果。如果您无法区分您在mdpi设备和xhdpi设备上的图像差异,则无需进行任何更改。

有关Android图形设计的更多信息,请阅读:http://developer.android.com/design/index.html


什么是Nine-Patch Drawables? - 43.52.4D.
它们是图像,您可以选择它们的哪些部分(水平和垂直)可以被复制,哪些应该保留其外观。您还可以选择将它们的哪一部分用于内容本身(用于文本)。有关更多信息,请访问:http://radleymarx.com/blog/simple-guide-to-9-patch/。您可以使用 SDK 管理器附带的名为“draw9patch”的工具创建此类图像。 - android developer
@androiddeveloper,我有一个问题,如果您不介意的话。如果制造商说屏幕分辨率是“1,280×768”,那么我该如何将其转换为“dp”?我希望我的应用程序支持最小宽度为“768px”,与Nexus 4相同,但我需要以“dp”形式提供它。 - ClassA
1
@ClassA 或许这个链接可以帮到你:https://dev59.com/MW445IYBdhLWcg3w_O8m#9563438 - android developer
1
不是“(density) dependent pixels”,而是称为密度无关像素(参见:https://developer.android.com/guide/topics/resources/more-resources.html#Dimension)。 - SOUser
@SOUser 正确的。是个打字错误。我甚至在维基百科上写过它。我现在已经更新了我的回答。谢谢。因此我为您点赞(+1)。 - android developer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接