当前位置: 首页 > 知识库问答 >
问题:

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

农存
2023-03-14

使用Android时

Drawable d = getResources().getDrawable(R.drawable.icon)

正确解析XML并返回有效的drawable。但当使用新的Vector Drawable支持库(23.4版,Gradle 2.1.2)时,该代码在Android 4下崩溃。

android.content.res.资源

...

原因:组织。xmlpull。v1.XmlPullParserException:二进制XML文件行#2:无效的可绘制标记向量

解决方案是使用

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

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

Java语言io。FileNotFoundException:损坏的XML二进制文件

那么,为了与Android 4和Android 6以及矢量和非矢量绘图工具配合使用,必须使用什么代码来代替第一行?例如,在所有情况下,这一行都是在Android 5.0项目中使用的?支持库文章没有提到执行此迁移的方法

共有3个答案

万俟光临
2023-03-14

另一个可能的解决方案我目前发现的

ResourcesCompat.getDrawable(context.resources, resId, theme)

上下文应该是您的活动(但不是应用程序上下文)

陈俊誉
2023-03-14

我找到了解决办法。

您需要在活动中手动添加支持向量Drawable。

在活动中尝试以下操作:

static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

您应该查看此博客条目以获取更多信息。

司马狐若
2023-03-14

您可以使用以下方法在5.0之前获得Vector Drawable的绘图。

Drawable drawable = AppCompatResources.getDrawable(mContext, mImageTitleResId);
 类似资料:
  • 我的应用程序在5.1.0中运行平稳,但当我在4.2.2中运行时,它显示错误: 我研究过这个。它说在gradle中添加向量支持错误,所以我补充道: 和gradle文件中的两个依赖项。 但它在4.4.2中显示了相同的错误。

  • 支持向量机 概述 支持向量机(Support Vector Machines, SVM):是一种监督学习算法。 支持向量(Support Vector)就是离分隔超平面最近的那些点。 机(Machine)就是表示一种算法,而不是表示机器。 支持向量机 场景 要给左右两边的点进行分类 明显发现:选择D会比B、C分隔的效果要好很多。 支持向量机 原理 SVM 工作原理 对于上述的苹果和香蕉,我们想象为

  • 支持向量机(Support Vector Machine,SVM它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,学习策略是间隔最大化,最终可转化为一个凸二次规划问题的求解。 直观来看,位于两类训练样本“正中间”的划分超平面效果最好,即中间最粗的那条。 一般使用支持向量机时还会使用核函数,这样支持向量机会成为实质上的非线性分类器。 基本概念 在样本空间中,划分超平面可以定义为

  • 支持向量机(SVM)是个非常强大并且有多种功能的机器学习模型,能够做线性或者非线性的分类,回归,甚至异常值检测。机器学习领域中最为流行的模型之一,是任何学习机器学习的人必备的工具。SVM 特别适合应用于复杂但中小规模数据集的分类问题。 本章节将阐述支持向量机的核心概念,怎么使用这个强大的模型,以及它是如何工作的。 线性支持向量机分类 SVM 的基本思想能够用一些图片来解释得很好,图 5-1 展示了

  • 支持向量机(SVM)是个非常强大并且有多种功能的机器学习模型,能够做线性或者非线性的分类,回归,甚至异常值检测。机器学习领域中最为流行的模型之一,是任何学习机器学习的人必备的工具。SVM 特别适合应用于复杂但中小规模数据集的分类问题。 本章节将阐述支持向量机的核心概念,怎么使用这个强大的模型,以及它是如何工作的。 线性支持向量机分类 SVM 的基本思想能够用一些图片来解释得很好,图 5-1 展示了

  • 最近在看斯坦福大学的机器学习的公开课,学习了支持向量机,再结合网上各位大神的学习经验总结了自己的一些关于支持向量机知识。 一、什么是支持向量机(SVM)? 1、支持向量机(Support Vector Machine,常简称为SVM)是一种监督式学习的方法,可广泛地应用于统计分类以及回归分析。支持向量机属于一般化线性分类器,这族分类器的特点是他们能够同时最小化经验误差与最大化几何边缘区,因此支持向