java – Android支持库:getDrawable独立如果向量与否

前端之家收集整理的这篇文章主要介绍了java – Android支持库:getDrawable独立如果向量与否前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当使用 Android> = 5.0时,
Drawable d = getResources().getDrawable(R.drawable.icon)

正确解析XML并返回有效的drawable.但是当使用新的Vector Drawable Support Library(版本23.4,Gradle 2.1.2)时,此代码在Android 4下崩溃.

android.content.res.Resources$NotFoundException

Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: invalid drawable tag vector

解决方案是使用

Drawable d = VectorDrawableCompat.create(getResources(),R.drawable.icon,null);

但是如果资源不是向量资源,则会崩溃:

java.io.FileNotFoundException: Corrupt XML binary file

那么,什么代码必须被使用,而不是第一行,以便它适用于Android 4和Android 6以及矢量和非矢量绘图.在所有情况下,这一行在Android 5.0项目中使用?支持文章没有提到执行此迁移的方法

解决方法

我找到了解决方案.

您需要在您的活动中手动添加支持VectorDrawable.

在你的活动中尝试这个:

static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

您应该查看这个blog entry了解更多信息.

猜你在找的Java相关文章