如何使用 Glide 将 svg 图像加载到图像视图

How to load svg image to image view using Glide

我在这个 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_width="match_parent"
     android:layout_height="50dp"
     android:layout_marginTop="8dp"
     android:layout_marginBottom="8dp"
 />

但是没有加载。它显示以下错误。

W/Glide: Load failed for https://restcountries.eu/data/afg.svg with size [100x100]

我使用 Glide 使用了 png/jpg 个图像。效果很好。为什么 SVG 图像没有使用 Glide 加载。我搜索了堆栈溢出。每个人都建议不同的图书馆。但是它们已经过时了。我想使用 Glide 来实现它。请帮我解决一些问题。

您可以使用滑行到矢量,

回购:https://github.com/corouteam/GlideToVectorYou

要将 svg 加载到图像视图中,您可以使用:

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);