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?