从适配器中的assets文件夹添加SVG图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从适配器中的assets文件夹添加SVG图像相关的知识,希望对你有一定的参考价值。

我想从Gridview Adapter在ImageView中加载SVG,我这样做:

imageView.setImageURI(Uri.parse("file:///android_asset/ico/s.svg"));

但没有工作,也没有显示任何东西

答案

我想从Gridview Adapter在ImageView中加载SVG,我这样做:

首先,ImageView不直接支持SVG。

其次,您的代码似乎正在加载PNG文件,而不是SVG文件。

第三,file:///android_asset/是为了WebView。它在Android SDK的其他地方不起作用。

您应该考虑切换到使用Glide作为图像加载器。它处理file:///android_asset/并具有转码SVG文件的示例代码。另外,它在后台线程上执行图像加载工作。

否则,您可以使用AssetManager及其open()方法获取资产上的InputStream。如果该资产是PNG,JPEG或WebP文件,您可以使用BitmapFactory.decodeStream()读取流并为您提供可用于BitmapImageView。您需要第三方库来处理SVG资产。并且,您需要安排在后台线程上执行此工作,否则您的UI将冻结并导致用户认为您的应用程序卡住了。

以上是关于从适配器中的assets文件夹添加SVG图像的主要内容,如果未能解决你的问题,请参考以下文章

从 Xcode Swift 中 Assets.xcassets 中的文件夹访问图像

ARKit 图像检测和从 Assets.xcassets 添加图像

在具有缓存哈希处理的角度模板中注入图像/svg/whatever

添加自定义加载微调器(SVG)reactjs

如何在 React 组件中导入图像(.svg、.png)

Android 显示SVG格式图片