2015-12-13 23 views
4

我使用ImageView的滑行得到位,我想从imageview--getDrawable()给出空对象,而试图从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 

帮帮我。

回答

5

Glide异步加载图像,所以在启动加载操作之后,您对位图的测试将返回null,因为图像尚未加载。

要知道,当你的形象确实已经加载,你可以在你的滑翔要求设置一个监听器,例如:

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);