getDrawable() дает нулевой объект при попытке получить растровое изображение из изображения

Я использую glide для просмотра изображений и хочу получить растровое изображение из этого изображения:

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

Помоги мне.


person Mayank Jindal    schedule 13.12.2015    source источник


Ответы (1)


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);
person mrlem    schedule 18.12.2015