使用Glide加载动图JPG时应用崩溃问题求助
使用Glide加载Imgur图片到SubsamplingScaleImageView
如果需要用Glide从Imgur加载图片到可缩放的SubsamplingScaleImageView组件,我整理了一段亲测可行的实现代码,核心是通过Glide的ViewTarget处理资源加载完成后的回调,适配SubsamplingScaleImageView的图片设置逻辑:
try { ViewTarget viewTarget = new ViewTarget<SubsamplingScaleImageView, BitmapDrawable>(image_view) { @Override public void onResourceReady(BitmapDrawable bitmap, Transition<? super BitmapDrawable> transition) { this.view.setImage(ImageSource.bitmap(bitmap.getBitmap())); } }; GlideApp.with(this).load(post_to_show.getUrl()).into(viewTarget); } catch (ClassCastException e) { // 捕获类型转换异常,避免因资源类型不匹配导致崩溃 }
关键细节说明:
- 因为SubsamplingScaleImageView不是标准
ImageView子类,无法直接使用Glide的into(ImageView)方法,所以需要自定义ViewTarget来绑定目标组件 - 在
onResourceReady回调里,我们把Glide返回的BitmapDrawable提取出原生Bitmap,再通过SubsamplingScaleImageView专属的setImage(ImageSource.bitmap())方法完成图片设置 - 外层的
try-catch用于捕获可能的类型转换异常,给代码增加一层崩溃防护
内容的提问来源于stack exchange,提问作者Khaled Emara
相关产品推荐
相关产品推荐

