2017-03-14 11 views
0

ここで何か問題がありますか?グレーをプレースホルダとしてロードしたいのですが、ロードされません。すでに別の画像がセットされているかロードされている場合にのみ発生します。ColorDrawableプレースホルダがグライドで読み込まれない

Glide.with(getContext()) 
    .load(url) 
    .placeholder(new ColorDrawable(ContextCompat.getColor(getContext(), R.color.placeholder_gray))) 
    .error(new ColorDrawable(ContextCompat.getColor(getContext(), R.color.placeholder_gray))) 
    .dontAnimate() 
    .into(new SimpleTarget<GlideDrawable>() { 
     @Override 
     public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) { 
     image.setImageDrawable(resource); 
     } 

     @Override 
     public void onLoadFailed(Exception e, Drawable errorDrawable) { 
     resetImageView(); 
     } 
    }); 

答えて

2

以下のコード試してみてください。

グライドバージョン: ':グライド:com.github.bumptech.glideを3.6.1' コンパイル

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="100dp" 
     android:layout_height="100dp"></ImageView> 
</RelativeLayout> 



ImageView imageView = (ImageView) findViewById(R.id.imageView); 
     Glide.with(this) 
       .load("http://matplotlib.org/_images/color_demo.png") 
       .placeholder(new ColorDrawable(ContextCompat.getColor(MainActivity.this, R.color.placeholder_gray))) 
       .error(new ColorDrawable(ContextCompat.getColor(MainActivity.this, R.color.placeholder_gray))) 
       .dontAnimate() 
       .into(imageView); 

<color name="placeholder_gray">#A9A9A9</color> 

有効なURLと無効を使用してみてください有効なURLの場合、画像の読み込み前に灰色が表示され、無効なURLの場合は灰色の灰色のプレースホルダが表示されます。

関連する問題