2011-03-22 6 views

답변

3

을 호출하여 내부 저장소 캐시 디렉토리를 확보 할 수 있습니다.이 저장소는 앱으로 저장하기 위해 독점적으로 사용되며 다른 사람이나 다른 앱에서 액세스 할 수 없습니다. getExternalCacheDir() (이 경우 사용자가 액세스 할 수 있음)을 호출하여 외부 저장소 (SD 카드) 캐시 디렉토리를 가져올 수도 있습니다. 이것에 대한 자세한 내용은 Androids Data Storage 장에서 찾을 수 있습니다.

downlaoding의 측면에서

하고 다음을 수행 할 수있는 이미지를 저장 : 당신이 포장 할 수 있도록, 이것은 OOM 오류 (에서 OutOfMemory)을 일으킬 수 있으므로

URL url = new URL(url); 
HttpURLConnection ucon = (HttpURLConnection) url.openConnection(); 
Bitmap image = Bitmap.decodeStream(ucon.getInputStream); 

File cacheDir = getCacheDir(); 

File imageFile = new File(cahceDir, "downloadedImage.png"); 

FileOutputStream fos = new FileOutputStream(imageFile); 

image.compress(Bitmap.CompressFormat.PNG, 100, fos); 
fos.close(); 
fos.flush(); 

는 큰 이미지를 다운로드하는 방법에 대한주의하여 비트 맵 객체를 SoftReference 객체와 함께 사용하여이 오류를 방지합니다. 즉

SoftReference<Bitmap> softref = new SoftReference(image); 
+0

도와 주셔서 감사합니다. – Mathew

관련 문제