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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_35540562/article/details/99985689

在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<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) {
                            // 在更新网络图片后会导致图片按占位符的比例缩放,只有重新加载后图片才正常显示
                            // 这里通过移除占位符后再重新加载图片实现图片按比例显示,但是会导致短暂的闪烁
                            productHolder.imgProduct.setImageResource(0);
                            return false;
                        }
                    })
                    .into(productHolder.imgProduct);

通过设置请求结果的监听,在得到请求结果后移除占位图,这样图片就能按本身的尺寸加载。
这会导致的问题是在移除和加载网络图片之间会有短暂的闪烁,设置淡入淡出动画没有效果,后面会尝试添加自定义动画看是否能避免闪烁。

猜你喜欢

转载自blog.csdn.net/qq_35540562/article/details/99985689