从ImageView获取到Glide加载的图片

1、说明

Glide是一个强大的图片处理框架,我们好多时候也会用Glide去加载图片。

在一些情况下会需要从ImageView中直接获取Glide加载成功的图片,该怎么办呢 ?

2、解决

一般情况我们可以用以下方式获取到其中的bitmap:

Bitmap bitmap = ((BitmapDrawable) imageView.getBackground()).getBitmap();

但使用该方法后却报错了:

SquaringDrawable cannot be cast to android.graphics.drawable.BitmapDrawable。

由上面的说明可知,我们获取到的并不是BitmapDrawable,而是SquaringDrawable,它是Glide自己封装的一个对Drawable的扩展。一步步看源码,发现SquaringDrawable父类是GlideBitmapDrawable,而它是可以获取到bitmap对象的,那么就可以通过以下方式获取到bitmap图片对象:

Bitmap bitmap = ((GlideBitmapDrawable)imageView.getDrawable().getCurrent()).getBitmap();

 

搞定 !

你可能感兴趣的:(Android-技术篇)