我想从web加载svg文件并在imageView上显示此文件,对于普通的png或其他图像文件我使用Picasso库是否可以将此库用于svg文件?有没有办法从网上加载svg文件并在图像视图上显示?我使用svg-android库来显示svg文件,但我不知道如何从web获取svg图像所有示例都使用本地文件.
我正在尝试imageView
通过Glide 将图像加载到其中。但是图像未加载-我收到错误消息。我正在使用以下代码
GlideApp.with(context)
.load(itemData.getThumbnailUri())
.placeholder(R.mipmap.koya_logo_white)
.error(R.mipmap.ic_image_loading_error)
.into(itemBinding.cover);
Run Code Online (Sandbox Code Playgroud)
日志
lide: Load failed for https://s3.amazonaws.com/koya-dev-videos/kindness/8da807aa-1e1e-413d-bf9b-5bb084646593/medialibrary/9456621508/videos/1eb78337-d569-41bd-95ad-153d9098de03.png with size [1080x1080]
Run Code Online (Sandbox Code Playgroud)
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{StringUri->Object->Drawable}, LOCAL, DataCacheKey{sourceKey=https://s3.amazonaws.com/koya-dev-videos/kindness/8da807aa-1e1e-413d-bf9b-5bb084646593/medialibrary/9456621508/videos/1eb78337-d569-41bd-95ad-153d9098de03.png, signature=EmptySignature}
Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{StringUri->Drawable->Drawable}
Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{StringUri->Bitmap->Drawable}
Run Code Online (Sandbox Code Playgroud) 我正在构建一个需要从服务器下载 svg 图像的 android 应用程序。我曾尝试以通常的方式使用毕加索,但它什么也没显示。
Picasso.get().load(url).into(imageView)
Run Code Online (Sandbox Code Playgroud)
有没有办法用毕加索显示矢量图像?
在应用程序中,我使用以下示例将SVG图像加载到ImageView中:
Glide.with(context)
.using(Glide.buildStreamModelLoader(Uri.class, context), 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())
.diskCacheStrategy(DiskCacheStrategy.NONE)
.load(uri)
.into(imageView);
Run Code Online (Sandbox Code Playgroud)
xml中的ImageView看起来像这样:
<ImageView
android:layout_width="46dp"
android:layout_height="46dp"
android:layout_marginTop="25dp"
android:layout_gravity="center"
/>
Run Code Online (Sandbox Code Playgroud)
因此,该问题可以在下图看到。右边的图标是从应用程序的资源设置的,而左边的图标是使用Glide从服务器加载的。由于某些原因,图像缩放不正确,并且看起来模糊。
我已经尝试过以下答案的解决方案: 用Glide加载SVG时,图像尺寸太小,但是不起作用。