제임스딘딘의
Tech & Life

개발자의 기록 노트/Android

[안드로이드] 인터넷에서 이미지 비동기 다운로드

제임스-딘딘 2010. 12. 25. 18:27

안드로이드 인터넷 이미지 비동기 다운로드

보통, 인터넷에서 이미지를 다운로드 하는 코드를 아래와 같이 사용하는 경우가 종종 있었다.
그러나 잘못된 사용방법이라고 한다.


잘못된 사용 예
URL url = new URL(imageUrl);

bitmap = BitmapFactory.decodeStream(url.openStream());


이미지 주소로 URL 객체를 만든 후, BitmapFactory의 decodeStream( )의 인자로써 생성한 URL객체의 openStream( ) 메서드를 호출하고 있다.

그러나, 아래와 같은 방법으로 사용하는 것이 올바른 사용 방법이라고 한다.


올바른 사용 예

HttpGet httpRequest = new HttpGet(URI.create(imageUrl) );
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = (HttpResponse) httpclient.execute(httpRequest);
HttpEntity entity = response.getEntity();
BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity);
InputStream instream = bufHttpEntity.getContent();

bitmap = BitmapFactory.decodeStream(instream);


마지막의 BitmapFactory.decodeStream( ) 메서드 사용은 동일하다.

그러나, 입력하는 parameter가 다름에 주목하자.