2016-04-03 4 views
32

で立ち往生していないグライド:私は、サーバーのラインコードからかなり基本的なロードイメージを持っている実画像をロードし、プレースホルダ

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

何らかの理由で、私はいつもプレースホルダが表示された状態で立ち往生、決してよ本当のイメージ!

有効で有効なURLが渡されていることを確認しました。そして、私はプレースホルダなしで同じコードを使用している場合、それは正常に動作

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

任意のアイデアはなぜですか?

答えて

68

お試しください。.dontAnimate() TransitionDrawableによるもので、キャッシュされているので、スクロール後にはアニメーションがないようです。 正しいコードは、私はあなたがマニフェストにインターネットのアクセス許可を追加した場合のローディング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); 
+3

いくつかの奇妙な理由で、これが問題を解決しました。アニメーションなしではトランジションは醜いです。 –

+0

それは私のために働く。 – Neela

+0

プレースホルダーがGlide v4.0.0に存在しません – Kenji

0

あなたがすでに言ったようにあなたのURLが有効であることは私が推測できる奇妙なことだと思われます。あなたのイメージビューに適用されてもあなたのリモコンはダウンロードされていますが、あなたのプレースホルダは何とかそれを隠しています。 Glideにはプレースホルダーに関するいくつかのバグがあります。

だからトリックはプレースホルダは setImageDrawable()経由で設定されている
Glide.with(view.getContext()).load(url). 
placeholder(R.drawable.default_profile).fitCenter().into(view); 

のでImageViewは、いつものように表示しますが、あなたはどのに合う明示的fitCenterを使用するようにグライドを伝える:

私の提案は以下しようとするだろう読み込まれた画像はImageViewのサイズでレイアウトされ、setImageDrawable()で設定されます。フィットされた画像は完璧なフィットであるため、センターはビューの全領域をカバーする画像を描画します。

お試しください。

1

使用ProgressBarの役に立つことを願ってい

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

です:

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

インターネットに接続できない場合、グライドは例外を発生しません。

19

チェックとしてご

+2

確かに!これは私にとって問題を解決しました。デベロッパーがこのような間違いを犯すとグライドが例外を発生させるともっと便利だと思います。 –

+1

F ***。 3年後にAndroidアプリをやっているうちに、このことはまだ私を時間を失わせる。 – JMedinilla

1

誰かがこの変更のための正確な理由の

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

わからないを追加する必要があり、将来的にこの遭遇した場合は、それにもかかわらず、私のコードは、その許可を得ずに作業し、今それをしませんでした。

関連する問題