gpt4 book ai didi

c# - 如何在 Xamarin.Android 中使用 AppGlideModule?

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:22 27 4
gpt4 key购买 nike

在 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 制作的类,请在评论中告诉我。

最佳答案

老问题,但这是诀窍。您将需要创建一个包含 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 绑定(bind)库中。这一步没有什么值得一提的,只需将构建的 AAR 放入绑定(bind)项目中,添加匹配版本的 Glide Nuget 并构建即可。

然后您可以在您的应用项目中添加对该绑定(bind)库的引用。在您的 Android 应用程序类中,您需要设置 InjectedModule 静态属性以注入(inject)您的 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
}

关于c# - 如何在 Xamarin.Android 中使用 AppGlideModule?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48173133/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com