我需要在图像中设置效果模糊,但当将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();

最佳答案

利用毕加索回调:

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() {

        }
    });

确保您的imageview的widthheight不是由WRAP_CONTENT定义的。
这是因为fit()在测量时需要imageview的大小。
如果ImageView的宽度和高度由WRAP_CONTENT定义,则其方法getMeasuredWidth()getMeasuredHeight()将返回0,您将看不到图像。

10-07 19:33
查看更多