2015-01-26 5 views
0

예를 들어 인스 타 그램 앱과 같은 이미지 피드가있는 Android 앱을 작성 중입니다. 내 질문에 내가 메모리 예외가 없으면 어떻게 이러한 이미지를 캐시 할 수 있습니다?이미지를 캐시하는 방법은 무엇입니까?

자습서를 읽었지만 모두 LruCache의 비트 맵을 캐싱하고 있습니다. 내가 틀릴 수도 있지만 ImageView 및 캐시 된 비트 맵 같은 메모리를 사용하여 생각합니다.

압축 된 이미지 (예 : JPEG)를 메모리 내장 캐시 (물론 디스크)에 저장하고 화면에 표시 될 때만 표시하면 CPU가 먹을 것입니다. 배터리가 보이지 않을 때 ImageView를 계속 지우고 뷰포트에있을 때 이미지를 압축 해제하고 보여주기 때문에 배터리를 다시 켭니다. 그리고 새로운 스레드에서 스크롤을하더라도, 스크롤이 느려지지는 않을지는 잘 모르겠습니다.

대안은 위에서 설명한 것과 동일하지만, 이미지가 많이 있고 메모리가 부족한 경우에만 즉시 이미지 뷰에서 비트 맵을 제거하지 않을 것입니다.

당신은 어떻게 생각하십니까? 여기

+0

가능한 [안드로이드 이미지 캐싱] (http://stackoverflow.com/questions/1945201/android-image-caching) –

답변

1

인 예를 단계별 메모리와 디스크에 이미지를 캐시하는 방법 :

http://androidexample.com/Download_Images_From_Web_And_Lazy_Load_In_ListView_-_Android_Example/index.php?view=article_discription&aid=112&aaid=134

그러나 당신은 또한 같은 꽤 잘 이미 작동 libs와 사용할 수 있습니다

http://square.github.io/picasso/

첫 번째 링크는 피할 수는 비트 맵을 치료하는 방법에 대한 설명을 포함 outOfMemory.

+0

의 복제본이지만 둘 다 파일 캐시 콜백이있는 캐싱 비트 맵입니다. 다른 방법이 없습니까? – vsakos

+0

이 문제가 무엇입니까? – vinitius

+0

디스크에서로드하는 속도가 느립니다. 메모리의 모든 것 (또는 거의 모든 것)을 원합니다. – vsakos

관련 문제