【发布时间】:2014-06-26 03:05:28
【问题描述】:
我有一个库项目,其中有几个应用项目使用它。由于图像重复(即均匀间隔的垂直条)或边缘拉伸时看起来不好的事实,一些应用程序项目需要用于某些可绘制对象(即背景图像)的 PNG 文件。其他应用程序项目有坚实的背景,可以有 9 个补丁图像。
示例项目结构
图书馆
--res
----drawable-xxxx
------背景.png
------some_image.9.png
其他项目
--res
----drawable-xxxx
------background.9.png
------some_image.png
但是,如果我尝试将 9 个 Patch 图像添加到其中一个项目中,我会收到一个编译时错误,即我有同名的重复资源。有没有一种简单的方法来解决这个问题,而不必重新定义每个产品中的背景文件(这不是很容易维护)?
【问题讨论】:
-
重命名图像,并对其进行编程以选择要使用的图像(可能通过应用程序使用库的函数调用)。您不能有 2 个具有相同文件名的资源,否则它不知道该选择哪一个。
-
请记住资源文件的基本名称(在删除它们的扩展名之后)需要是唯一的。对于 9-patch 文件,基本名称是删除“.9.png”后留下的名称。
-
看起来我认为这是不可能的并没有错……我只是在寻找一种更易于维护的方法来更改资源,而不必为每个项目添加代码。在我看来,编译器可能被编写为查找具有相同基本名称的资源文件,而不是用主项目的资源覆盖的文件名。 Gabe,如果您将您的评论作为答案发布,它将被接受。
标签: android image resources drawable nine-patch