【问题标题】:Overwrite PNG with 9 Patch and vice versa用 9 Patch 覆盖 PNG,反之亦然
【发布时间】: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


【解决方案1】:

正如 Gabe Sechan 和 scottt 在 cmets 中针对该问题指出的那样,文件的名称必须是唯一的才能识别它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-07
    • 2020-09-17
    • 2011-04-30
    • 1970-01-01
    • 2013-03-14
    • 2014-11-08
    • 2012-02-16
    • 2013-08-16
    相关资源
    最近更新 更多