mikepenz material 抽屉无法加载 url 抽屉项目

mikepenz material drawer can not load url for drawer item

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

请帮帮我。谢谢

已解决此问题。

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

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

//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;
  }
});

玩得开心@.@

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

使用glide:

//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);
        }
});

picasso:

//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

的实现