I am using Picasso to load images from my server and display them in ImageView.
I observes some crash reports from user's phone where Out of Memory Exception happens when Picasso is trying to load an image into ImageView.
The stack trace as below:
java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:596)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:832)
at android.content.res.Resources.loadDrawable(Resources.java:2988)
at android.content.res.Resources.getDrawable(Resources.java:1558)
at android.widget.ImageView.resolveUri(ImageView.java:646)
at android.widget.ImageView.setImageResource(ImageView.java:375)
at com.squareup.picasso.PicassoDrawable.setPlaceholder(PicassoDrawable.java:62)
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:520)
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:462)
at com.mycompany.myAdapter.getView(MyAdapter.java:102)
at android.widget.AbsListView.obtainView(AbsListView.java:2608)
at android.widget.GridView.makeAndAddView(GridView.java:1346)
The Code near MyAdapter.java:102 as below:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
.....Some code .....
Picasso.with(mContext)
.load(url_to_server)
.placeholder(R.drawable.default_placeholder)
.into(holder.imageItem); // Line 102
.....Some code .....
return convertView;
}
Is there sth wrong with the way I use this library?