2

所以我得到了整个 Android 像素独立性。

我正在创建一个使用 9patch 的 SplashScreen,它将拉伸其边缘以适应所有屏幕尺寸。

ldpi mpdi hdpi xhdpi我还为每个初始屏幕使用不同大小的 9patch 图像。这样徽标(9patch 的非拉伸区域)将是正确的大小。

我知道相对大小mdpi是 1.0 和hdpix1.5 并且xhdpi是 x2,但是当我创建第一个 mdpi 图像时,我怎么知道它应该是多少像素宽/高

希望这是有道理的。

4

3 回答 3

1

真的没有一个答案。首先,我不会从 mdpi 开始并扩大规模——最好从尽可能高的质量开始。矢量,如果它适合设计,或高分辨率图像(甚至大于您当前计划支持的最大屏幕尺寸)。然后,从那里为您计划测试的设备缩小尺寸。例如,典型的 HDPI 分辨率为 480 x 800,因此在此处适当调整。XHDPI 分辨率可能类似于 1280 x 720。最好只在边缘留出大量边距,以防它用于具有不同纵横比的设备或其他设备上。但是,是的,基本上,设计尽可能大,然后根据您正在处理的密度桶的一些平均屏幕分辨率导出。

于 2012-04-27T22:11:48.687 回答
1

(...) 当我创建第一个 mdpi 图像时,我怎么知道它应该是多少像素宽/高?

由于mdpi是所有其他密度桶的基线,因此1dpmdpi设备上将准确转换为1px. 换句话说,使用一个mdpi设备来计算屏幕上的相对大小,然后应用给定的缩放比例来为ldpihdpixhdpi桶生成资源。显然,您实际上不必扩大该mdpi资源 - 您只需要确定该屏幕密度的大小,然后您可以使用任何源文件为所有存储桶生成图像。

xBroak 给出的链接实际上是有关您的问题的最佳信息来源。从那里引用来支持上述陈述:

与密度无关的像素相当于 160 dpi 屏幕上的一个物理像素,这是系统为“中等”密度屏幕假定的基线密度。

d(i)p了解简单的公式也可能会派上用场px(也来自同一个链接):

dp 单位到屏幕像素的转换很简单:px = dp * (dpi / 160)

使用此信息,您可以轻松验证1dpmdpi设备(带160dpi屏幕)上是否等于1px. 只需填写即可160dpi得到px = dp * (160 / 160),简化为px = dp * 1,因此简化px = dp160dpi。QED。:)

于 2012-04-28T03:22:44.647 回答
-1

这些是您的基本准则:

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

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

更多信息:http: //developer.android.com/guide/practices/screens_support.html

于 2012-04-27T22:21:49.043 回答