当前位置:  开发笔记 > Android > 正文

getDrawable()在尝试从imageview获取位图时给出null对象

如何解决《getDrawable()在尝试从imageview获取位图时给出null对象》经验,为你挑选了1个好方法。

我正在使用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

帮帮我.



1> mrlem..:

Glide异步加载图像,因此在启动加载操作后立即对位图进行测试将返回null,因为图像尚未加载.

要知道您的图像何时确实已加载,您可以在Glide请求中设置一个监听器,例如:

Glide.with(this)
    .load("http://graph.facebook.com/1615242245409408/picture?type=large")
    .listener(new RequestListener() {
        @Override
        public boolean onException(Exception e, Uri model, Target target, boolean isFirstResource) {
            return false;
        }

        @Override
        public boolean onResourceReady(GlideDrawable resource, Uri model, Target 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);

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有