首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Xamarin.Android中使用AppGlideModule?

如何在Xamarin.Android中使用AppGlideModule?
EN

Stack Overflow用户
提问于 2018-01-10 00:57:39
回答 2查看 623关注 0票数 5

在使用Xamarin.Android上的Glide库时,我希望有人能讲解如何使用AppGlideModule。根据文档,我需要使用AppGlideModule注册我的自定义ModelLoader。

下面是Glide文档中示例的链接:http://bumptech.github.io/glide/tut/custom-modelloader.html#writing-the-modelloader

下面是我的自定义AppGlideModule类:

public class MyCustomGlideModule : AppGlideModule
{
    public override void ApplyOptions(Context context, GlideBuilder builder)
    {
        base.ApplyOptions(context, builder);
    }

    public override void RegisterComponents(Context context, Glide glide, Registry registry)
    {
        registry.Prepend(
            Java.Lang.Class.FromType(typeof(Java.IO.OutputStream)),
            Java.Lang.Class.FromType(typeof(Drawable)),
            new MyCustomImageStreamModelLoaderFactory()
        );
    }
}

我不知道是否有必要,但如果你想看看我为ModelLoader制作的类,请在评论中告诉我。

EN

回答 2

Stack Overflow用户

发布于 2019-06-27 01:41:37

这是一个老问题,但这里有个诀窍。您需要创建一个包含AppGlideModule包装器的Android/Java库。这个库不包含任何其他内容,只是用来生成GlideApp类。它需要包含最终AppGlideModule的静态实例。基本上,它看起来像这样:

@GlideModule
public class XamarinGlideModule extends AppGlideModule {
    public static AppGlideModule InjectedModule;

    @Override
    public void registerComponents(Context context, Glide glide, Registry registry) {
        if(InjectedModule != null) {
            InjectedModule.registerComponents(context, glide, registry);
        }
    }
}

然后,您需要将该库包装在Android绑定库中。在这一步中没有什么值得一提的,只需将构建的AAR放在绑定项目中,添加匹配版本的Glide Nuget并构建即可。

然后,您可以在应用程序项目中添加对该绑定库的引用。在你的Android Application类中,你需要设置InjectedModule静态属性来注入你的Xamarin实现。您必须在调用Glide之前执行此操作,如下所示:

public override void OnCreate()
{
    base.OnCreate();

    XamarinGlideModule.InjectedModule = new MyLoaderModule();
    var temp = GlideApp.Get(this); // Init Glide, it will register your Xamarin module
}
票数 1
EN

Stack Overflow用户

发布于 2020-11-29 07:06:12

现在又多了一个选项,可以使用C#代码中的自定义glide模块。只需安装此工程的包:

https://github.com/KDD-Digital-Healthcare-GmbH/Kdd.Glide.AppModuleInjector

注意:如果你需要glide的自定义AppModule来接受自签名证书,你也可以安装这个包,它已经实现了这样的模块:

https://github.com/KDD-Digital-Healthcare-GmbH/Kdd.Glide.UnsafeUrlLoadingAppGlideModule

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48173133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档