首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中从文件加载SVG

在Android中从文件加载SVG
EN

Stack Overflow用户
提问于 2017-08-22 00:25:40
回答 1查看 1K关注 0票数 2

我想在图像视图或网页视图中显示.svg文件。我不知道哪一个更适合这个目的,我想要一些关于这个问题的意见。

记住,我没有编译时的文件,所以我不能在Android Studio中使用VectorDrawable API21方法,尽管我可以使用这个类,如果它有帮助的话。

首先,我需要搜索文件系统(私有应用程序存储)中是否没有存储.svg,如果没有找到,我必须下载并将其保存在文件系统中。我将使用OkHTTP从网络上下载并保存文件。

我已经在这个项目上滑行,如果这个关于显示.svg的帮助我想要建议,因为我从来没有使用滑行与.svg工作。

对于这种问题,我应该使用像svg-android这样的旧库吗?我不知道他们是否还可靠。

EN

回答 1

Stack Overflow用户

发布于 2017-08-22 02:05:27

您可以将Glide用于svg图像。创建requestBuilder:

代码语言:javascript
复制
GenericRequestBuilder<Uri, InputStream, SVG, PictureDrawable> requestBuilder = Glide.with(this)
                .using(Glide.buildStreamModelLoader(Uri.class, this), InputStream.class)
                .from(Uri.class)
                .as(SVG.class)
                .transcode(new SvgDrawableTranscoder(), PictureDrawable.class)
                .sourceEncoder(new StreamEncoder())
                .cacheDecoder(new FileToStreamDecoder<>(new SvgDecoder()))
                .decoder(new SvgDecoder())
                .listener(new SvgSoftwareLayerSetter<Uri>());

然后:requestBuilder.diskCacheStrategy(DiskCacheStrategy.NONE).load(Uri.parse(svgUrl)).into(imageView);

请参见this示例。

像这样创建svgUrl

代码语言:javascript
复制
    String fileName = "name.jpg";
    String path = Environment.getExternalStorageDirectory() + "/" + fileName;

    File file = new File(path);
    Uri svgUrl = Uri.fromFile(file);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45801790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档