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

ken*_*ted 3 java svg android android-layout android-glide

SVG我在这个网址中有一张图片。svg 图像链接 。我想将此SVG图像从加载urlimage view. 我曾经将此图像Glide加载到.SVGimage 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 );
Run Code Online (Sandbox Code Playgroud)

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"
 />
Run Code Online (Sandbox Code Playgroud)

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

W/Glide: Load failed for https://restcountries.eu/data/afg.svg with size [100x100]
Run Code Online (Sandbox Code Playgroud)

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

小智 5

您可以使用“滑行至矢量”,

仓库: 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);
Run Code Online (Sandbox Code Playgroud)