如何使用 Glide 将 svg 图像加载到图像视图
Posted
技术标签:
【中文标题】如何使用 Glide 将 svg 图像加载到图像视图【英文标题】:How to load svg image to image view using Glide 【发布时间】:2021-08-17 10:45:09 【问题描述】:我在这个 URL 中有一个SVG
图像。 svg image link
.我想将这个SVG
图像从url
加载到image view
中。我已使用Glide
将此SVG
图像加载到image view
。
这是滑翔代码:
Glide.with( context)
.setDefaultRequestOptions(new RequestOptions().timeout(60000))
.load( "https://restcountries.eu/data/zwe.svg" )
.thumbnail( 0.5f )
.override( 200, 200 )
.diskCacheStrategy( DiskCacheStrategy.ALL )
.listener(new RequestListener<Drawable>()
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource)
progressLayout.setVisibility(View.GONE);
return false;
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource)
progressLayout.setVisibility(View.GONE);
flag_iv.setEnabled(true);
return false;
)
.into( flag_iv );
XML 代码:
<ImageView
android:src="@drawable/icon_app"
android:id="@+id/flag_iv"
android:layout_
android:layout_
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
/>
但它没有被加载。它显示以下错误。
W/Glide: Load failed for https://restcountries.eu/data/afg.svg with size [100x100]
我使用png/jpg
使用Glide
的图像。效果很好。为什么 SVG
没有使用 Glide 加载图像。我搜索了堆栈溢出。每个人都建议不同的图书馆。但它们已经过时了。我想使用Glide
来实现它。请帮我解决一些问题。
【问题讨论】:
它不依赖于 Glide,而是依赖于 .svg 图像。 ImageView 无法显示 .svg 文件。 @blackapps,然后如何在 imageview 中显示 svg 图像。还有其他解决方案吗? 【参考方案1】:您可以使用 Glide To Vector,
回购:https://github.com/corouteam/GlideToVectorYou
并将 svg 加载到 imageview 中,您可以使用:
GlideToVectorYou
.init()
.with(this)
.withListener(new GlideToVectorYouListener()
@Override
public void onLoadFailed()
Toast.makeText(context, "Load failed", Toast.LENGTH_SHORT).show()
@Override
public void onResourceReady()
Toast.makeText(context, "Image ready", Toast.LENGTH_SHORT).show()
)
.setPlaceHolder(placeholderLoading, placeholderError)
.load(IMAGE_URL, imageview);
【讨论】:
以上是关于如何使用 Glide 将 svg 图像加载到图像视图的主要内容,如果未能解决你的问题,请参考以下文章