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

时间:2015-03-31 22:23:14

标签: android image background

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

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

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

android:background="@drawable/background"

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

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

搜索,第一个提示指向大小问题 - 但文件大小为11kB!然后我发现更多的点击,他们基本上指向分辨率。我的图片尺寸为1080x1920px。我将它调整为768px(保持比例)和 - 瞧! - 现在加载了。

然而,我想知道这是否是正确的方法。经过多年的网络开发,我想知道“css-like”方法是否更合适。如果我使用该图像大小,它是否适用于所有设备和所有分辨率?毕竟,它只有两种颜色(授予,带有弯曲元素)。

此类案件的最佳做法是什么?谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

最佳做法是了解应用程序开发和设计的以下3个部分:how to handle bitmapshow to provide resourceswho is the target for your app

从谁开始是您应用的目标开始,不仅仅是这个人,而是他们倾向于使用的设备以及您想要支持的设备。在您的问题中,您提到将图像大小调整为768px可防止错误发生,但发生错误是因为1080(16:9)分辨率在解压缩时是相当大的图像。因此,您自己的开发设备无法处理相当大的图像。解压缩为ARGB时为8M,768px图像刚好超过4MB。所以你可以看到存在显着的记忆差异。除了考虑内存大小,您可以考虑屏幕尺寸差异,如果您在非常强大的2048x1536显示器上显示800x480图像,不考虑内存使用情况,缩放图像看起来非常锯齿状,宽高比会有缺陷更糟糕的是,如果设备的方向发生了变化。

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