2

我正在为所有 Android 设备的应用程序设计背景。我在想图像的像素大小是多少?

从开发者网站我发现了以下等式

像素 = dp * ( dpi / 160)

然后, px 取决于两个变量。

首先,dp,我们有

xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp

二、dpi和我们有

 low-density (ldpi) screens (~120dpi).
 medium-density (mdpi) screens (~160dpi).
 high-density (hdpi) screens (~240dpi).
 extra high-density (xhdpi) screens (~320dpi).

那么我应该把我的drawables放在Screen特性的哪里呢?我的意思是我应该使用“尺寸”还是“密度”。如果我使用“大小”“dp”对图像进行分类,这些图像的 dpi 是多少?如果我使用“密度”“dpi”对图像进行分类,这些图像的 dp 是多少?

我对如何最终调整图像大小感到困惑。另外,也许你可以有一个大屏幕尺寸的中密度屏幕,对吧?

4

1 回答 1

4

那里有许多不同的解决方案。例如,可能有 4 种不同的设备,它们是:

640像素x 480像素

不同之处在于,这些设备中有些是 mdpi,有些是 hdpi、xhdpi 等,这意味着它们可以被描述为“大”、“中”或“超大”屏幕类型。

因此,对于 640x480dp 的 mdpi 设备,背景将是 640x480px,但是,640x480dp 和 hdpi 的设备将需要 960x720px 的背景,您会注意到它们是相同大小的“桶”,但具有不同的密度,因此不同的分辨率。

因此,如果您只想让您的背景符合预期,您将需要:

  • 大 xhdpi
  • 大tvdpi
  • 大hdpi
  • 大 mdpi
  • 大ldpi

(然后正常情况下相同)

  • 普通-xhdpi
  • 正常-tvdpi

等等等等等等

但是,最好的办法是使用可以拉伸、形状、平铺或可以转换为 9-patch 的图像,因为让每个背景都可用于每个设备会很麻烦。如果您要这样做,我会查找描述当前市场上每个屏幕尺寸的资源,并通过编程方法进行设置。

于 2012-11-09T15:25:08.377 回答