我正在转向矢量绘图,即使在较旧的Android版本上它们也能很好地工作。我的应用针对4+。我将其中一个通知切换为矢量图像,为此我必须以编程方式使用VectorDrawableCompat
。突然之间我得到了该通知的例外,因为它无法找到资源。
这是例外:
Fatal Exception: android.content.res.Resources$NotFoundException: File res/drawable-hdpi-v4/vector_name.png from xml type xml resource ID #0x7f0201d5
at android.content.res.Resources.loadXmlResourceParser(Resources.java:3733)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:3680)
at android.content.res.Resources.getXml(Resources.java:2215)
at android.support.graphics.drawable.VectorDrawableCompat.create(VectorDrawableCompat.java:408)
这是我正在运行的代码:
VectorDrawableCompat vector = VectorDrawableCompat.create(getResources(), R.drawable.vector_name, null);
我的gradle文件有这行vectorDrawables.useSupportLibrary = true
,就像我说的,所有其他矢量工作正常,但我主要使用它们使用AppCompatImageView
。
编辑:我应该提到我在库模块中这样做。
您需要在defaultConfig
文件中的build.gradle
块中添加此行:
vectorDrawables.useSupportLibrary = true
这将在运行时生成低于21的API的png,并且您不会收到错误,因为找不到它们。