0

我也使用 mikepenz 材质抽屉,但我遇到了关于加载 URL 以更新抽屉项目图标的问题,但仍然失败。我无法解决它。 https://github.com/mikepenz/MaterialDrawer

在此处输入图像描述

请帮我。谢谢

4

2 回答 2

8

从最新版本的 MaterialDrawer 开始,现在建议使用 AbstractDrawerImageLoader 并覆盖特定方法。

使用滑行

//initialize and create the image loader logic
DrawerImageLoader.init(new AbstractDrawerImageLoader() {
        @Override
        public void set(ImageView imageView, Uri uri, Drawable placeholder) {
            Glide.with(imageView.getContext()).load(uri).placeholder(placeholder).into(imageView);
        }

        @Override
        public void cancel(ImageView imageView) {
            Glide.clear(imageView);
        }
});

毕加索

//initialize and create the image loader logic
DrawerImageLoader.init(new AbstractDrawerImageLoader() {
        @Override
        public void set(ImageView imageView, Uri uri, Drawable placeholder) {
            Picasso.with(imageView.getContext()).load(uri).placeholder(placeholder).into(imageView);
        }

        @Override
        public void cancel(ImageView imageView) {
            Picasso.with(imageView.getContext()).cancelRequest(imageView);
        }
});

您可以在MaterialDrawer的 GitHub 存储库中找到完整的实现,包括有关如何为不同目标定义不同占位符的示例代码。这是CustomApplication的实现

于 2015-09-22T10:38:56.930 回答
1

修复了这个问题。

MaterialDrawer 支持从 URL 获取图像并将它们设置为配置文件图标。由于 MaterialDrawer 不包含 ImageLoading 库,因此开发人员可以选择自己的实现

需要在您的应用程序类中实现此方法。

//initialize and create the image loader logic
DrawerImageLoader.init(new DrawerImageLoader.IDrawerImageLoader() {
  @Override
  public void set(ImageView imageView, Uri uri, Drawable placeholder) {
    Picasso.with(imageView.getContext()).load(uri).placeholder(placeholder).into(imageView);
  }

  @Override
  public void cancel(ImageView imageView) {
    Picasso.with(imageView.getContext()).cancelRequest(imageView);
  }

  @Override
  public Drawable placeholder(Context ctx) {
    return null;
  }
});

玩得开心 @。@

于 2015-09-21T05:14:28.393 回答