Скольжение, не загружающее реальное изображение и застрявшее с заполнителем

У меня есть довольно базовое изображение загрузки из кода строки сервера:

Glide.with(view.getContext()).load(url).placeholder(R.drawable.default_profile).into(view);

По какой-то причине я всегда застрял в том, что местозаполнитель отображается и никогда не является реальным изображением!

Я убедился, что действительный и рабочий URL-адрес передается. И, если я использую тот же код без заполнителя, он отлично работает

Glide.with(view.getContext()).load(url).into(view);

Любые идеи почему?

Попробуйте добавить .dontAnimate() Он также вызван TransitionDrawable, и кажется, что после прокрутки нет анимации, потому что она кэширована. Правильный код

 Glide.with(view.getContext()).load(url).placeholder(R.drawable.default_profile).dontAnimate().into(view); 

Я надеюсь быть полезной для вас

Проверьте, добавлено ли в манифесте разрешение на использование Интернета:

 <uses-permission android:name="android.permission.INTERNET"/> 

Glide не устраняет исключения, если нет подключения к Интернету.

Использовать ProgressBar как загрузку gif

 Glide.with(context). load(url) .listener(new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { progressBar.setVisibility(View.GONE); return false; } @Override public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { progressBar.setVisibility(View.GONE); return false; } }) .crossFade(1000) .into(imageView); 

Кажется странным, но единственное, что я мог догадаться, – это ваш URL-адрес, как вы уже сказали. Ваш пульт загружается, даже если он применяется к вашему изображению, но ваш заполнитель каким-то образом скрывает его. У Glide есть некоторые ошибки, связанные с материалом-заполнителем.

Мое предложение было бы попробовать:

 Glide.with(view.getContext()).load(url). placeholder(R.drawable.default_profile).fitCenter().into(view); 

Таким образом, трюк – это placeholder, установленный через setImageDrawable() поэтому ImageView просто отображает его, как обычно, но вы говорите Glide, чтобы явно использовать fitCenter который будет хорошо поместиться с загруженным изображением в выложенном размере ImageView через Transformation, а затем Установите его через setImageDrawable() . Так как установленное изображение идеально подходит, центр просто рисует изображение, охватывающее всю область обзора.

Попробуй.

Если кто-то столкнется с этим в будущем, возможно, вам придется добавить

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

Не зная точную причину этого изменения, тем не менее мой код не работал без этого разрешения и теперь делает с ним.

Intereting Posts