我需要在图像中放置效果模糊,但是当将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();
答案 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 height
和WRAP_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();