Glide的使用问题——网络图片与占位图比例不一致时Glide不能及时更新图片的大小

在StackOverflow上找到的办法:Glide: load drawable but don't scale placeholder。

Glide.with(context)

                    .load(product.getImageUrl())

                    .placeholder(R.mipmap.img_scp_product_default)

                    .error(R.mipmap.img_scp_product_default)

                    .listener(new RequestListener() {

                        @Override

                        public boolean onException(Exception e, String model, Target target,

                                boolean isFirstResource) {

                            return false;

                        }

                        @Override

                        public boolean onResourceReady(GlideDrawable resource, String model,

                              Target target, boolean isFromMemoryCache, boolean isFirstResource) {

                            // 在更新网络图片后会导致图片按占位符的比例缩放,只有重新加载后图片才正常显示

                            // 这里通过移除占位符后再重新加载图片实现图片按比例显示,但是会导致短暂的闪烁

                            productHolder.imgProduct.setImageResource(0);

                            return false;

                        }

                    })

                    .into(productHolder.imgProduct);

通过设置请求结果的监听,在得到请求结果后移除占位图,这样图片就能按本身的尺寸加载。

这会导致的问题是在移除和加载网络图片之间会有短暂的闪烁,设置淡入淡出动画没有效果,后面会尝试添加自定义动画看是否能避免闪烁。

你可能感兴趣的:(Glide的使用问题——网络图片与占位图比例不一致时Glide不能及时更新图片的大小)