我使用Ion库在RecyclerView中加载一组GIF - 每行一个GIF。 我使用以下代码加载gif:
@Override
public void onBindViewHolder(MyViewHolder vh, int i) {
MyObject myObj = data.get(i);
Ion.with(vh.imageViewGif)
.error(R.mipmap.ic_launcher)
.animateGif(AnimateGifMode.ANIMATE)
.load(myObj.getGIF_URL());
}
碰巧如果我继续滚动,我会得到以下异常(OutOfMemoryError):
java.lang.OutOfMemoryError 在android.graphics.Bitmap.nativeCreate(本机方法) 在android.graphics.Bitmap.createBitmap(Bitmap.java:896) 在android.graphics.Bitmap.createBitmap(Bitmap.java:920) 在com.koushikdutta.ion.gif.GifDecoder.setPixels(GifDecoder.java:257) 在com.koushikdutta.ion.gif.GifDecoder.readImage(GifDecoder.java:504) 在com.koushikdutta.ion.gif.GifDecoder.nextFrame(GifDecoder.java:137) 在com.koushikdutta.ion.IonDrawable $ IonGifDecoder $ 1.run(IonDrawable.java:190) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587) 在java.lang.Thread.run(Thread.java:841)
我如何解决这个OutOfMemoryError?需要Ion上的任何配置来处理内存和缓存吗?