android: 自定义背景的最佳实践

android: best practice for custom background

我是 android 的新手,但我是一位经验丰富的 Java 和其他语言程序员。

我需要为初始应用程序创建自定义背景 activity。这很简单,这里是: http://imgur.com/VrtrRo5

应该很简单吧! 我能想到的最好的是:

android:background="@drawable/background"

首先,这让我发疯,我总是得到:

Binary XML file line #1: Error inflating class <unknown>

正在搜索,第一个提示指出了大小问题 - 但文件大小为 11kB!然后我发现了更多的点击,它们基本上指向 resolution。我的图像尺寸为 1080x1920 像素。我将它的大小调整为 768px(保持比例)并且 - 瞧! - 现在加载了。

但是,我想知道这是否是正确的方法。经过多年的 Web 开发,我想知道 "css-like" 方法是否更合适。如果我使用该图像尺寸,它是否适用于所有设备和所有分辨率?毕竟,它只有两种颜色(当然,有一个弯曲的元素)。

此类情况的最佳做法是什么?谢谢!

这方面的最佳实践来自对应用程序开发和设计的以下 3 个部分的理解:how to handle bitmaps, how to provide resources, and who is the target for your app

首先,谁是您的应用程序的目标,不仅是人,还有他们倾向于使用的设备以及您想要支持的设备。在您的问题中,您提到将图像大小调整为 768px 可以防止错误发生,但发生该错误是因为 1080(16:9)分辨率在解压缩时是相当大的图像。所以您自己的开发设备无法处理相当大的图像。解压为ARGB时为8M,768px的图片刚好超过4MB。所以你可以看到存在显着的内存差异。除了考虑内存大小之外,您还可能会考虑屏幕尺寸差异,如果您在功能强大的 2048x1536 显示器上显示 800x480 图像,则图像片刻,不考虑内存使用情况,缩放后的图像看起来会非常参差不齐,纵横比也会有缺陷,如果设备的方向发生变化,情况会更糟。

结论是为您要支持的设备类型提供图形。提供这些资源是了解应用程序如何组织其资源的问题。

看这个: https://developer.android.com/training/basics/supporting-devices/screens.html

您应该为不同的分辨率和屏幕密度创建不同的位图。