2015-09-21 3 views
0

Я также использую ящик материалов mikepenz, но я столкнулся с проблемой загрузки URL-адреса, чтобы обновить значок элемента ящика, но все еще не удалось. Я не могу это решить. https://github.com/mikepenz/MaterialDrawermikepenz материал ящик не может загрузить url для элемента ящика

enter image description here

пожалуйста, помогите мне. Спасибо

ответ

8

В последней версии 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); 
     } 
}); 

Вы можете найти полную реализацию, включая примеры кода, как определить различные заполнители для различных целей в репозитории GitHub в MaterialDrawer. Вот реализация CustomApplication

+0

Вы упомянули, что этот код должен быть в классе Application. Итак, если я хочу изменить профиль pic во время выполнения, будет ли он работать? – codevscolor

+1

этот код предоставляет только логику, которую будет использовать ImageLoader (например, picasso и т. Д.), Если вы обновите профиль, который вы можете сделать. – mikepenz

+0

спасибо. Еще один вопрос, как мы можем обнаружить onClick в профиле пользователя imageView – codevscolor

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

Удачи @. @

 Смежные вопросы

  • Нет связанных вопросов^_^