2016-04-03 21 views

cevap

68

eklemeye çalışın .dontAnimate() Bu TransitionDrawable tarafından neden oldu ve kaydırmadan sonra önbelleğe alındığı için animasyon olmadığından bu kadar iyi görünüyor. doğru kod

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

Yardım etmeye umut sen

+3

Bazı garip nedenlerden dolayı, bu sorunu çözdü. Geçiş, animasyon olmaksızın çirkin. –

+0

Benim için çalışıyor. – Neela

+0

Yer tutucu, Glide v4.0.0 – Kenji

0

Garip görünüyor ama tahmin edebileceğim tek şey URL'niz zaten söylediğin gibi geçerli. Uzaktan kumandanız, resim görünümünüze uygulandığında bile indiriliyor ancak yer tutucunuz bir şekilde onu gizliyor. Glide, yer tutucularla ilgili bazı hatalar içeriyor.

Yani hile tutucu setImageDrawable() üzerinden ayarlanır edilir
Glide.with(view.getContext()).load(url). 
placeholder(R.drawable.default_profile).fitCenter().into(view); 

yüzden ImageView her zamanki gibi bunu gösterecektir, ancak hangi uyacak açıkça fitCenter kullanmak Glide söyle:

Benim önerim aşağıda denemek olacaktır Yüklenen görüntü güzel bir şekilde ImageView'un içinde bir Dönüştürme aracılığıyla boyutlandırıldı ve ardından setImageDrawable() aracılığıyla ayarlandı. Takılan görüntü mükemmel bir uyum sağladığı için, merkez sadece görüntünün tüm alanını kapsayan görüntüyü çizecektir.

Bir deneyin.

1

Kullanım ProgressBar yükleme gif Eğer manifest İnternet izni eklediyseniz

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

Kontrol olarak için:

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

Internet bağlantısı yoksa, Glide, istisna yapmaz. Birisi gelecekte bu rastlarsa

+2

Gerçekten de! Bu benim için problemi çözdü. Glide, geliştirici böyle bir hata yaptığında bir istisna ortaya çıkarsa, daha kullanışlı olacağını düşünüyorum. –

+1

F ***. 3 yıl sonra Android uygulamaları yaptıktan sonra, bu şey hala saatimi kaybediyor, dostum. – JMedinilla

1

sen yine benim kod bu izni olmadan işe yaramadı, bu değişikliğin kesin nedeni

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

Emin eklemem gerekiyor ve şimdi onunla yapar olabilir.