2017-09-23 4 views
-1

일부 이미지를 recyclerview에 표시해야하는 Android 애플리케이션을 개발 중입니다. 한 번에 이미지를 다운로드하고 안드로이드의 캐시 또는 내부 저장 장치에 저장 한 다음 저장소에 이미지가 있고 서버에서로드 및 다운로드하지 않은 경우 내부 저장소의 이미지를 표시하려고합니다.안드로이드에서 이미지를 캐시하는 방법 서버에서 오는 그것을 보여?

그리고이 이미지가 사용자의 갤러리 앱에 표시되는 것을 원하지 않습니다.

아키텍처를 알고 싶지만 코드를 작성하는 방법을 알고 싶지 않습니다.

캐시 메모리와 내부 저장소간에 차이가 있습니까? 그리고 캐시에 이미지를 저장할 수있는 권한이 필요합니까?

편집 :

내 질문에 그는 이미지를 캐싱 또는 내부 저장 장치에 저장되지 않는 그 질문에 @Dima에 의해 제안 하나, 다른, 나는 생각한다.

+0

가능한 [이미지 캐싱 및 표시]의 복제본 (https://stackoverflow.com/questions/16789676/caching-images-and-displaying) –

답변

-1

글라이드는 이미지를 비동기 적으로 표시하기위한 훌륭한 라이브러리입니다.

글라이드의 디스크 캐시 전략 : 만 DiskCacheStrategy.SOURCE 캐시 : DiskCacheStrategy.DATA, 글라이드 3.X :

글라이드 4.x의 논의로 DiskCacheStrategy.NONE 캐시 아무것도 :

글라이드 3.x를 & 4.x의 원래 전체 해상도 이미지. 위의 예제에서 1000x1000 픽셀 중 하나 일 것입니다.

글라이드 4.x : DiskCacheStrategy.RESOURCE 글라이드 3.x : DiskCacheStrategy.RESULT 해상도를 축소 한 후 최종 이미지 만 캐시합니다 (글라이드 3.x의 기본 동작).)

글라이드 4.x의 경우 : DiskCacheStrategy.AUTOMATIC 지능적 글라이드 4.x의의 자원 (기본 동작)

글라이드 3.x를 기반으로 캐시 전략을 선택 & 4.x의 : 이미지의 DiskCacheStrategy.ALL 캐시 모든 버전 마지막 예로서, 자주 조작하고 묶음을 만드는 이미지가 있다면 그것의 다른 버전 중, 원래의 해상도 만 캐시하는 것이 좋습니다.

예 :

글라이드 4.x의

GlideApp 
    .with(context) 
     .load(eatFoodyImages[2]) 
     .diskCacheStrategy(DiskCacheStrategy.DATA) 
     .into(imageView3); 

글라이드 3.x를이

Glide 
    .with(context) 
    .load(eatFoodyImages[2]) 
    .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
    .into(imageViewFile); 

와 캐시가 될 것입니다 원래에만 유지에 따라서, 우리는 글라이드를 말할 것 귀하의 응용 프로그램의 데이터 폴더에 그래서 사용자 갤러리에 표시되지 않습니다.