Android应用程序中的图像尺寸

8

抱歉,我知道之前有些人有类似的问题,但我也遇到了同样的问题,并没有从以前的问题中获得清晰的视角。

我发现对于开发者来说,Android 处理多个尺寸非常复杂。例如,从 ldpi 到 xxhdpi 以及平板电脑都有不同的设备。

我所观察到的是,图像有不同的文件夹结构,如 ldpi、mdpi、hdpi 和 xhdpi,对于平板电脑还有 sw-600dp(7 英寸)和 sw720dp(10 英寸)。

现在的问题是许多手机的尺寸都是 5 英寸,但它们的分辨率不同,对于平板电脑也是如此。因此,我很困惑,要求设计师为不同的手机和移动设备制作什么尺寸的图像,因为分辨率因设备而异。

我还查看了链接http://developer.android.com/training/basics/supporting-devices/screens.html,但并没有清晰的想法。

我是 Android 新手。请指导我如何解决这个问题。


2
我也需要这个澄清。在 Android 方面有 2 年经验后,我仍然不清楚这些事情。 :( - Android Killer
1
我也没有清楚的想法如何处理不同的分辨率。希望通过您的问题能够得到一些想法。 - ADB
@Simple 我只是在创建不同大小的背景图片并将其放入不同的文件夹中。由于大多数是背景图片,所以有时会使用9-patch图片来帮助进行处理。 - Android Killer
不同图片的大小是根据文件夹而定的,我们怎样才能创建一个.9png呢?有什么好的教程推荐吗? - Simple
如果您可以使用9patch图像,则可以解决所有问题。对于此问题,9patch是更好的解决方案。 - dipali
显示剩余2条评论
3个回答

7
提前选择设备目标并坚持使用。检查市场上最大分辨率的流行设备(如:三星Galaxy S4(1080p),Nexus 7(1080p),Nexus 10(2560 x 1600)等)。
在物理设备上以最大分辨率进行设计/制图。
有三种类型的图像:
1. 可以制成9patch(问问自己...这个能用xml做吗?如果只由简单的形状组成,请重做为xml文件) 2. 可以重新制作为xml可绘制对象(渐变,形状等) 3. 只能缩放或裁剪(如照片)
使用9patches非常麻烦,我认为应尽可能避免。即使您制作了非常好的9patch,您仍然必须将其缩放到您希望支持的每个可能的分辨率,这将增加apk大小。对于xml文件,您不必担心这些问题,并且在将来引入更高分辨率设备时,您会得到向前兼容性(他们会出现)。
例如:
我正在开发的应用程序中,简单的渐变对话框背景(xhdpi中的100 x 400分辨率)在我支持的所有分辨率中(l,m,h,xhdpi)为20Kb。在xml中则只需<1Kb。
但是,如果您仍然想使用9patches,请在您关心的最大分辨率(xhdpi)上执行一次,并使用resizer工具获取所有其他分辨率。它将为您创建正确的可绘制文件夹结构!
关于第三点:
所以您有一些无法在xml中重做且无法制作为9patch的图像。即使只有几个(2-3)全屏图像(背景),您也将耗尽内存。有一些工具可以帮助解决这个问题,如通用图像加载器。当然,如果您只有小图像,则可能是安全的。
在Eclipse中,布局编辑器具有很好的预览功能,设置它以便始终可以看到您关心的所有分辨率和纵横比。
总之,告诉设计师仅针对手机、7英寸平板电脑和10英寸平板电脑进行不同的设计,且仅使用市场上该类设备中存在的最大可用分辨率。同时学习如何使用xml可绘制对象。

2

通常为了使设计完美,告诉你的设计师使用.9.png,即9个图像。9个图像可以根据您的要求进行拉伸。

另一种方法是,您的设计师需要计算屏幕尺寸的绝对值。这意味着我们有4种标准尺寸,如Android所给出的,分别为320X426、320X470、480X720、720X960。因此,如果您需要创建图像,则需要计算屏幕尺寸和所需图像。

例如,如果屏幕宽度为ldpi-320,则将为特定图像大小分配多少空间,因此他将在此计算后找到4个不同大小的图像。


.9png图像在ldpi、mdpi和hdpi等不同密度下的大小是多少?我们将创建所有这些图像并放置在不同的文件夹中。另外,关于布局,如何根据不同的尺寸进行管理? - Simple
.9.png将非常小,意味着10X10或5X5。它将根据您的要求进行拉伸。如果您使用了9个图像,则布局本身将很好。并且有一些来自Android的指南,您必须阅读它。 - Pratik Dasa
1
我认为9-patch图像并不适合所有情况。只有当图像是单色时,9-patch才更有效。但对于彩色图像,9-patch无效,图像会像普通图像一样被拉伸。 - Android Killer
是的,你说得对。并不是所有情况下都适用于9 patch技术。当9 patch技术无法使用时,你的设计师需要计算出设备屏幕与图像尺寸的绝对值。 - Pratik Dasa

1

验证您的布局和屏幕/密度特定资源是否按照您的意图运行是至关重要的。还有,在不支持具有大小/密度特定资源的屏幕的设备上验证您的应用程序的行为非常重要,并验证您的应用程序在Android默认情况下的外观和行为是否可接受。如果您设置图像大小的顺序,图像看起来会更好。

ldpi = 120px
mdpi = 160px
hdpi = 240px
xhdpi = 320px
xxhdpi = 440px
xxxhdpi = 560px

1
我相信xxhdpi是3倍,而xxxhdpi是4倍,因此这些尺寸应分别为480px和640px。 - Anthony Chuinard

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