我有一个图书馆项目和一个应用项目.除了其他东西,libary项目包含一些png和一些矢量drawables.现在,我可以通过给它相同的名称轻松覆盖应用程序项目中的png drawable,它将正确显示.但这不适用于矢量drawables:应用程序总是显示在Android 4和5上的库中定义的矢量drawables.应用程序永远不会显示应用程序项目的矢量drawables.
Google声称应用程序的资源始终优先于图书馆的资源:
由于工具将库模块的资源与依赖应用程序模块的资源合并,因此可以在两个模块中定义给定的资源ID.在这种情况下,工具从应用程序或具有最高优先级的库中选择资源,并丢弃其他资源.在开发应用程序时,请注意,可能会在多个项目中定义公共资源ID并将其合并,应用程序或最高优先级库中的资源优先.
但正如我所说,在矢量绘图的情况下,由于某种原因,它是相反的.知道我能做些什么来确保矢量drawables被覆盖就像普通的drawables和其他资源一样?
更新:已解决支持库v23.2!现在没什么可做的:)
构建库项目时,VectorDrawable
为每个密度创建PNG文件,并将原始文件VectorDrawable
放在drawable-anydpi-v21中.
如果你把你VectorDrawable
的绘制,anydpi-V21在您的应用程序,那么它会覆盖从资料库中的项目的绘制.这似乎是一个错误,应该创建一个新问题(如果还没有).
注意:这不会替换库中生成的PNG文件.您还需要将这些内容添加到您的应用中以覆盖它们.