首页 > 解决方案 > 如何远程获取 SVG

问题描述

我正在使用 RestFul api 获取国家/地区的国旗,图像采用 svg 格式,因此 glide 不支持 svg 格式。

Glide.with(context)
            .load(countriesListObj.getFlag())
            .apply(RequestOptions.circleCropTransform())
            .into(holder.countryFlag);

我找到了 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); 

这是另一种方式

 SvgLoader.pluck()
            .with(activity))
            .setPlaceHolder(R.mipmap.ic_launcher, R.mipmap.ic_launcher)
            .load("http://www.clker.com/cliparts/u/Z/2/b/a/6/android-toy-h.svg", image);

我也找到了其他方法,但是每种方法都在传递 Activity

(.with(activity)))

在 glide 中我们传递上下文。我将上下文转换为活动

(Activity) context;

但它显示错误

java.lang.NoSuchMethodError: 没有静态方法 buildStreamModelLoader(Ljava/lang/Class;Landroid/content/Context;)Lcom/bumptech/glide/load/model/ModelLoader; 在 Lcom/bumptech/glide/Glide 类中;或其超类('com.bumptech.glide.Glide' 的声明出现在 /data/app/com.abc.online-NgaithsDmCnw4eJKDV789==/split_lib_dependencies_apk.apk 中)

标签: androidandroid-glide

解决方案


推荐阅读