以特定屏幕尺寸密度生成图像

时间:2013-02-18 22:20:27

标签: android scaling pixels spectral-density

我正在使用一个在整个应用视图中使用的图片文件构建应用。关于将图像缩放到Android中不同的屏幕密度,我对android.developers中的信息感到有点困惑:ldpi = 0.75; mdpi = 1.0; hdpi = 1.5; xhdpi = 2.0

我的第一个想法是我所要做的就是将图像文件插入到适当的密度文件中,然后Android将负责缩放;但我觉得这不对。我的问题是:

如果我错了,我必须自己将图像缩放到适当的密度,然后将它们保存到不同的密度文件中,我该怎么做?我可以在Photoshop中执行此操作吗?我想是的,但我不确定。如果是这样,我将如何缩放图像?谢谢你的帮助!

2 个答案:

答案 0 :(得分: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

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

Formula used:

px = dp*dpi/160

答案 1 :(得分:1)

如果你想让Android规模(我不推荐)你可以简单地将一个图像放在适当的密度文件夹中(最好是你支持的最高版本 - xhdpi可能就目前而言),Android会对它进行缩放。

最好是,您应事先在Photoshop / GIMP /编辑器中重新缩放它们。

相关问题