13

我有两张图片要在我的应用程序中显示。

第一个图像是全屏的(作为应用程序的背景)。我已经多次阅读developer.android.com上的“支持多个屏幕”文章,但是对于每个 dpi 类别的图像大小,我仍然一头雾水。我尝试了我认为正确的尺寸,但是在大屏幕(即 1280x800@mdpi)上查看应用程序时,我发现背景出现像素化。这是可以理解的,因为我的 mpdi 图像是 320x480px。我该如何纠正?我应该使用什么尺寸的图像?

第二个图像是一个按钮。目前我的图像分辨率非常高,但是应用程序将其缩小,因此看起来不错。但是,我不希望在应用程序发布时是这样。对于这个图像,我需要知道图像应该是多少像素大小。目前,它60dp x 50dp在应用程序内。这将以像素为单位转换为什么?我知道使用公式px = dp * (dpi / 160),但是在这种情况下, dpi是多少?我不能为此图像使用 NinePatch PNG。

我不明白让我的图像以什么尺寸(以像素为单位)开始,以便它们在 Android 设备上正确显示。如果您在 mdpi 设备上,是否 dp = px?

更新:

经过几个小时的努力,我想出了以下几点:

drawable-xlarge-xhdpi   2560x1920px
drawable-large-xhdpi    1920x1440px
drawable-normal-xhdpi   1280x960px

drawable-xlarge-hdpi    1920x1440px
drawable-large-hdpi     1440x1080px
drawable-normal-hdpi    960x720px

drawable-xlarge-mdpi    1280x960px
drawable-large-mdpi     960x720px
drawable-normal-mdpi    640x480px

drawable-xlarge-ldpi    960x720px
drawable-large-ldpi     720x540px
drawable-normal-ldpi    480x360px

这些将是我的可绘制目录和我期望的每个目录的最大分辨率(我决定不支持小屏幕)。因此,我的图像将是这些尺寸。

在我的手机上看起来很棒。我没有看到任何文物。它似乎也适用于 1280x800@mpdi 屏幕的模拟器,因此希望它适用于所有设备......

有没有人认为这样做有问题?有一个更好的方法吗?我的计算看起来正确吗?

4

2 回答 2

2

给你,我把它弄下来了,我只是把它传过去

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
Generalised Dpi values for screens:

ldpi Resources for low-density (ldpi) screens (~120dpi)
mdpi Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline density.)
hdpi Resources for high-density (hdpi) screens (~240dpi).
xhdpi Resources for extra high-density (xhdpi) screens (~320dpi).
Therefore generalised size of your resources (assuming they are full screen):

ldpi
Vertical = 426 * 120 / 160 = 319.5px
Horizontal = 320 * 120 / 160 = 240px
mdpi
Vertical = 470 * 160 / 160 = 470px
Horizontal = 320 * 160 / 160 = 320px
hdpi
Vertical = 640 * 240 / 160 = 960px
Horizontal = 480 * 240 / 160 = 720px
xhdpi
Vertical = 960 * 320 / 160 = 1920px
Horizontal = 720 * 320 / 160 = 1440px

px = dp*dpi/160
于 2013-03-13T00:42:40.823 回答
0

使用 JRowan 的答案中的方法,您可以将“特殊”屏幕所需的图像添加到 res 文件夹中,如下所示:

res/drawable-xlarge-mdpi/background.png

或者

res/drawable-sw600dp-mdpi/background.png
...
于 2013-03-13T00:58:15.360 回答