如何有效地使用Glide的Listener?

时间:2018-01-17 07:13:14

标签: android imageview android-glide

我使用Glide从API加载图片。我正在使用gif在图像加载之前显示加载,所以最初我使用了特定的250dp高度的imageview,一旦图像正确加载,我将高度设置为WRAP_CONTENT,并在滑动侦听器的onResourceReady中设置FIT_XY的scaletype。 但在这里,有时图像加载其全高和其他时间当我向上滚动它再次加载相同的图像在相同的图像视图中压缩高度,似乎onResourceReady正在执行不是所有的时间。            `Glide.with(上下文)

      .load(outerHits.getHits().get(position).get_source().getProfilePic())
                .thumbnail(Glide.with(context).load(R.drawable.loading_gif3))
                .listener(new RequestListener<String, GlideDrawable>() {
                    @Override
                    public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                        return false;
                    }

                    @Override
                    public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                        LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
                        ((ViewHolder6) holder).card_gallary1_img1.setLayoutParams(params);
                        ((ViewHolder6) holder).card_gallary1_img1.setScaleType(ImageView.ScaleType.FIT_XY);
                        return false;
                    }
                })
                .diskCacheStrategy(DiskCacheStrategy.RESULT)
                .into(((ViewHolder6) holder).card_gallary1_img1);`

Xml是

<ImageView
    android:id="@+id/card_gallary1_img1"
    android:layout_width="match_parent"
    android:layout_height="250dp"
    android:background="@color/white"
    android:src="@drawable/no_image"/>

0 个答案:

没有答案