android - 如何远程获取 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 中)