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

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

  • 综述 “看二更云,三更月,四更天。” 本文采用编译器:jupyter    给定训练样本集D,分类学习最基本的想法就是基于训练集D的样本空间中找到一个划分超平面,将不同类别的样本分开。但能将训练样本分开但划分超平面可能有很多,如图。 存在多个划分超平面将两类训练样本分开 直观上看,应该去找位于两类训练样本"正中间"的划分超平面,即图中粗线的那个,因为该划分超平面对训练样本局部扰动的"容忍性"最好。

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

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