10

我已经阅读了这篇文章(和其他文章)以及有关在 Android 中支持不同屏幕分辨率的文档,但我找不到一个(简单)问题的明确答案:

在 Android 应用程序中只对图像使用“res/drawable”可以吗?

背景:此特定应用程序中唯一需要的图像是应用程序图标本身和通知图标,任何布局中都不会有任何图像。
所以据我了解,如果没有找到“hdpi”-、“mdpi”- 和“ldpi”- 文件夹,Android 将使用“res/drawable”作为后备。
由于不同屏幕分辨率的唯一缺陷似乎是,如果没有找到特殊分辨率,Android 会将图像缩放为特定分辨率,这应该只在 UPscaling 时出现问题,因为图像会变得模糊。但是,如果我在“res/drawable”中提供所有“hdpi”图像(而不是 3 个不同的图像),如果尺寸太大,Android 不会缩小这些图像吗?
如果这是真的,我可以节省一些 APK 空间,只需要三分之一的图像。

后续问题:我读到对于 API 级别 3,需要一个名为“drawable-v3”的目录。这是真的还是“可绘制”也是这个 API 级别的后备?

任何提示表示赞赏。

4

6 回答 6

7

可绘制文件夹中的图像假定为 mdpi 分辨率,因此如果您不提供其他图像,它们将被放大/缩小。

放大的图像将是低分辨率的并且看起来很模糊。缩小的图像会丢失像素并且看起来参差不齐。

因此,您的应用程序将仅使用一组默认图像“工作”,但在许多设备上看起来很糟糕。我强烈建议您创建不同尺寸的图像,以便在所有设备上看起来都很棒——这有点无聊,但并不难。

不久之后我们就会拥有 xhdpi 设备,因此当您使用它时,您可能也想创建这些设备。

我假设你已经读过这个

于 2011-02-15T22:15:08.327 回答
2

不是一个完整的答案,但是:高度缩小的图像可以而且通常看起来和放大的图像一样糟糕(但方式不同),因为图形库几乎完全使用插值方法来调整大小,而插值方法在多少方面受到限制他们可以在严重的信息丢失之前缩小图像(线性方法缩小到大约 50%,双三次方法缩小到大约 25%)。这就是为什么大多数平台都发展了约定(如 hdpi、mdpi 等),让您可以嵌入最适合每种屏幕尺寸的图像。

于 2011-02-15T22:06:14.573 回答
2

我一直使用drawable/,然后我去百思买和所有当地的无线商店,在小型/大型/巨大(平板电脑)设备上测试我的应用程序,它们看起来还不错。

于 2011-02-15T22:22:30.647 回答
2

除非您有某些理由针对前 Donut 设备(根据http://developer.android.com/resources/dashboard/platform-versions.html ,现在只有 4% 的设备),否则您应该将位图放在一个-Xdpi 目录。出于兼容性原因,通用的“drawable”目录是“drawable-mdpi”的同义词,但现代编写良好的应用程序应该将其drawables 放在与其设计密度相匹配的目录中。

于 2011-02-16T04:21:03.627 回答
0

res/drawable 是后备

需要注意的是,缩放不仅会降低图像质量,还会花费处理时间。

我什至还没有阅读 API-Level 3 文档,抱歉 1/2 的答案

于 2011-02-15T22:08:39.670 回答
-2

值得一提的是,我发现 Android 的图像处理既乏味又不可靠。为不同的屏幕包含不同大小的图像的概念将导致大型应用程序文件中包含大量图像。已经有一些屏幕不适合标准分辨率范围。我发现最好不要让 android 处理缩放,它似乎为您定位的最小屏幕创建一个基本图像,然后将其放大,从而在大屏幕上生成普通的图像。即使您专门为大屏幕制作图像,也会发生这种情况。我的解决方案似乎适用于从 2 英寸三星手机到索尼平板电脑的所有设备,它是创建高分辨率图像并使用 Bitmap.createScaledBitmap() 来获得我需要的大小。

警告:我是 Android 新手,有很多东西要学。

于 2012-02-25T00:32:08.947 回答