我想在imageview或webview中显示.svg文件。我不知道哪一个更适合这个目的,想就这个问题提出一些意见。
请记住,我没有在编译时使用该文件,所以我不能在Android Studio中使用VectorDrawable API 21方法,尽管如果它有帮助我可以使用该类。
首先,我需要搜索文件系统(私有应用程序存储)中是否存在.svg,如果没有找到,我必须下载并将其保存在filesytem上。我将使用OkHTTP从网上下载并保存文件。
如果有关于显示.svg的帮助,我已经在这个项目中滑行我想要建议,因为我从未与.svg一起使用滑行。
对于这种问题,我应该使用像svg-android这样的旧库吗?我不知道他们是否可靠。
您可以将Glide用于svg图像。创建一个requestBuilder:
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
:
String fileName = "name.jpg";
String path = Environment.getExternalStorageDirectory() + "/" + fileName;
File file = new File(path);
Uri svgUrl = Uri.fromFile(file);