【问题标题】:How to load svg image to image view using Glide如何使用 Glide 将 svg 图像加载到图像视图
【发布时间】: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_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]

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

【问题讨论】:

  • 它不依赖于 Glide,而是依赖于 .svg 图像。 ImageView 无法显示 .svg 文件。
  • @blackapps,然后如何在 imageview 中显示 svg 图像。还有其他解决方案吗?

标签: java android android-layout svg android-glide


【解决方案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);

【讨论】:

    猜你喜欢
    • 2017-12-17
    • 2015-02-08
    • 1970-01-01
    • 2018-03-22
    • 2016-06-01
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多