在位图中转换imageview时,位图为空

时间:2017-03-18 20:53:55

标签: android bitmap imageview

我需要在图像中放置效果模糊,但是当将imageview转换为位图时,它会显示错误(NullPointerException)。

参见代码:

// mImages is a list of string (links http of images in web)      
Picasso.with(mContext).load(mImages.get(position)).fit().centerInside().into(imageView);
Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();

2 个答案:

答案 0 :(得分:2)

利用毕加索的回调:

Picasso.with(this)
    .load(mImages.get(position))
    .fit()
    .centerInside()
    .into(imageView, new Callback() {
        @Override 
        public void onSuccess() {
            // Drawable is ready
            Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
        }

        @Override 
        public void onError() {

        }
    });

确保 width 未定义您的ImageView heightWRAP_CONTENT

这是因为fit()在测量时需要ImageView的大小。

如果ImageView的宽度和高度由 WRAP_CONTENT 定义,其方法getMeasuredWidth()getMeasuredHeight()将返回0,您将不会看到图像。

答案 1 :(得分:0)

你确定imageView!= null?如果条件

将其包裹在里面
if(imageView != null){
// write your code here
}else{
//log something like the following
Log.e("imageView","NULL");
}

你确定它已经建好了吗?尝试下一个代码

imageView.buildDrawingCache();
Bitmap bmap = imageView.getDrawingCache();