我正在使用glide进行imageview,我想从该imageview获取位图 -
ImageView imageView = (ImageView) findViewById(R.id.dp);
Glide.with(this).load("http://graph.facebook.com/1615242245409408/picture?type=large").into(imageView);
Bitmap fbbitmap2 = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
但它给出了
java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.Bitmap android.graphics.drawable.BitmapDrawable.getBitmap()' on a null object reference
帮助我。
答案 0 :(得分:8)
Glide异步加载图像,因此在启动加载操作后立即对位图进行测试将返回null,因为图像尚未加载。
要知道您的图片何时确实已加载,您可以在Glide请求中设置一个监听器,例如:
Glide.with(this)
.load("http://graph.facebook.com/1615242245409408/picture?type=large")
.listener(new RequestListener<Uri, GlideDrawable>() {
@Override
public boolean onException(Exception e, Uri model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, Uri model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
// drawable is in resource variable
// if you really need to access the bitmap, you could access it using ((GlideBitmapDrawable) resource).getBitmap()
return false;
}
})
.into(imageView);