썸네일 URL에서 비트맵을 뽑아와
비트맵을 캐시에 보관하고, 프로그래스바를 시크할때 썸네일을 띄우도록 코드를 작성하였습니다.
그런데 캐시에 보관하는 부분에서 아웃오브 메모리가 나는데요.
무엇이 문제일까요??
for (int k = 0 ; k < previewThumbPath.length ; k++) {
String path = previewThumbPath[k];
if (!path.trim().isEmpty()) {
imageLoader.get(path, new ImageLoader.ImageListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
@Override
public void onResponse(ImageLoader.ImageContainer arg0, boolean arg1) {
if (mCache == null) {
mCache = new LRUCache<>(30);
}
mCache.put(arg0.getRequestUrl(), arg0.getBitmap()); // 캐시에 저장
}
});
}
}
에러메시지-------------
Out of memory on a 4480016-byte allocation.
"Thread-4004" prio=5 tid=15 RUNNABLE
| group="main" sCount=0 dsCount=0 obj=0x4282d2a8 self=0x41d0b8b0
| sysTid=16929 nice=10 sched=0/0 cgrp=apps/bg_non_interactive
handle=1104198920
| state=R schedstat=( 2872153854 2192104766 6107 ) utm=233 stm=53
core=3
at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method)
at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:596)
at com.android.volley.toolbox.ImageRequest.doParse(ImageRequest.java:143)
at com.android.volley.toolbox.ImageRequest.parseNetworkResponse(ImageRequest.java:126)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:121)
[ 07-22 16:36:56.673 16912:16929 D/skia ]
--- decoder->decode returned false