java.lang.IllegalStateException:新的滑动版本无法加载SVG图像

时间:2018-02-17 21:44:02

标签: android svg imageview android-glide

我使用glide 4.6.1将图像加载到图像视图中但它失败了。以前我使用Glide 3.6.0在imageview中加载图像。滑动版本3.6.0工作正常,并从URL完美加载图像。为了使其在Glide 3.6.0中运行,我遵循了本文android:load svg file from web and show it on image view。但是,滑动4.6.1未在图像视图中加载 SVG 图像并给出异常。

我的代码是:

field = (EditText)findViewById(R.id.field);

官方Glide Github也展示了这个例子我也在关注那篇文章https://github.com/bumptech/glide/tree/master/samples/svg/src/main/java/com/bumptech/glide/samples/svg

我得到的例外是:

requestBuilder = GlideApp.with(context)
                .as(PictureDrawable.class)
                .listener(new SvgSoftwareLayerSetter());
requestBuilder.load(uri).into(imageview);

有没有办法让Glide 4.6.1以类似于Glide 3.6.0的方式加载SVG?

1 个答案:

答案 0 :(得分:1)

是的,解决方案是缺少来自SvgModule Class的@GlideModule。所以它应该是:

**@GlideModule** //was missing this
public class SvgModule extends AppGlideModule {
    @Override
    public void registerComponents(@NonNull Context context, @NonNull Glide glide,
                                   @NonNull Registry registry) {
        registry.register(SVG.class, PictureDrawable.class, new SvgDrawableTranscoder())
                .append(InputStream.class, SVG.class, new SvgDecoder());
    }

    // Disable manifest parsing to avoid adding similar modules twice.
    @Override
    public boolean isManifestParsingEnabled() {
        return false;
    }
}