그림 메모리 넘침 요약

1:               。
bitmap = BitmapFactory.decodeStream(uc.getInputStream());

해결 방법: 먼저 그림을 로컬로 불러오기
그리고 나서
bmp = loadBitmapFromLocal(fileWholePath, false);

원본 코드를 첨부하다.
String fileName = linkUrl.substring((linkUrl.lastIndexOf("/")+1));
	String fileWholePath = getCachePath(fileName);
	BufferedOutputStream fout = new BufferedOutputStream(
new FileOutputStream(new File(fileWholePath)));
	InputStream in = uc.getInputStream();
	byte[] data = new byte[1024 * 5];
	int len = 0;
	while((len = in.read(data)) != -1){
		fout.write(data, 0, len);
	}
	fout.flush(); //  while     
	fout.close();
	in.close();
public static Bitmap loadBitmapFromLocal(String localPath, boolean isCache) {
		if(localPath == null){
			return null;
		}
		File file = new File(localPath);
		//         ,   
		if (file.exists()) {
			Log.d(TAG, "【  】  ..." + localPath);
			if (BitmapManager.containsKey(localPath)) {
				return BitmapManager.get(localPath);
			} else {
				try {
					String path = file.getAbsolutePath();
					Bitmap bmp = BitmapFactory.decodeFile(path);
					if (isCache && bmp != null) {
						BitmapManager.put(localPath, bmp);
					}
					return bmp;
				} catch (OutOfMemoryError err) {
					err.printStackTrace();
				}
			}
		}
		return null;

좋은 웹페이지 즐겨찾기