加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:31:21 所属栏目:Java 来源:网络整理
导读:当使用 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$
当使用 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了解更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读