[Android] 웹 이미지를 ImageView에 적용시키기

2016. 10. 9. 18:44·공부/Android

이미지 URL을 안드로이드 ImageView에 적용시키기 위해서는 HTTP통신이 필요합니다.

아래 소스는 HttpURLConnection을 사용해 커넥션을 열고 Bitmap이미지를 받아오는 방법입니다.

HTTP통신을 하기 위해서는 메인 스레드가 아닌 별도의 스레드를 만들어서 작업해야합니다.

자주 필요할 것 같아 함수로 만들었습니다.

* 매니페스트에 INTERNET 권한 설정 추가해줘야 합니다.

//URL을 통해 비트맵 파일을 return
public Bitmap bitmapFromUrl(final String sUrl){
final Bitmap[] bitmap = new Bitmap[1];
//안드로이드에서 네트워크 관련 작업을 할 땐 별도의 스레드를 생성해서 작업해야 함.
Thread mThread = new Thread(){
@Override
public void run(){
try {
URL url = new URL(sUrl);
//httpURLConnection을 사용해 url과 연결.
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.connect();
// 커넥션에서 인풋스트림을 받아 Bitmap 변환
InputStream is = conn.getInputStream();
bitmap[0] = BitmapFactory.decodeStream(is);

} catch (IOException e) {
e.printStackTrace();
}
}
};

mThread.start(); // 구현한 쓰레드를 실행시킨다.

try{
//멀티쓰레드 작업 중 서브스레드의 결과를 메인스레드에 적용시켜야 할 필요가 있는 경우
//메인스레드의 필요한 작업이 종요할 때 까지 대기하도록 하는 메서드
mThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
return bitmap[0];
}

//비트맵 이미지를 이미지뷰에 적용
public void intoImageView(ImageView iv, Bitmap bitmap){
if(bitmap!=null) {
iv.setImageBitmap(bitmap);
}else{
// iv.setImageBitmap(오류이미지);
}
}

 

반응형
'공부/Android' 카테고리의 다른 글
  • [Gradle] Android studio에서 org.apache.http 사용하는 방법
  • [scrollview match_parent not working] ScrollView의 match_parent가 안먹힌다면?
  • Content Provider
  • Android ListView 최적화방법 세가지
JangGiraffe
JangGiraffe
안녕하세요~ 반갑습니다! 머무시면서 즐거운 시간 보내시길 바랍니다. 오픈카톡 : https://open.kakao.com/o/sYEBs0uh
  • JangGiraffe
    giraffe1010
    JangGiraffe
  • 전체
    오늘
    어제
    • 분류 전체보기 (390)
      • 공부 (155)
        • AI (3)
        • Spring (10)
        • JAVA (31)
        • python (6)
        • 기타 (12)
        • 메세지 (3)
        • Jsp,Servlet (4)
        • HTML (12)
        • Javascript (6)
        • C#,ASP.NET (2)
        • WEB (2)
        • DB (11)
        • Android (18)
        • [BaaS]Parse.com (4)
        • 졸업프로젝트 (4)
        • AWS,네이버클라우드플랫폼 (2)
        • Ubuntu (6)
        • maven (1)
        • 자료구조 (15)
        • 서버 (3)
      • 게임 (0)
      • 관심 (22)
        • 사진 (1)
        • 패스오브엑자일(POE) (1)
        • 월드오브워크래프트 (4)
        • 블로그 (7)
        • 이슈 (1)
        • IT (5)
        • 기타 게임 (3)
      • 자료 (2)
        • 면접 (2)
      • 먹거리 (103)
        • 음식리뷰 (99)
        • 카페리뷰 (4)
      • 여행 (35)
        • 국내여행 (23)
        • 해외여행 (12)
      • 생활정보 (68)
        • 생활정보 (33)
        • 상품리뷰 (34)
        • 세미나후기 (1)
      • 끄적끄적 (5)
        • 영화후기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 문의(카톡)
    • 방명록
  • 링크

    • 2zino
    • wildbluffer
  • 공지사항

  • 인기 글

  • 태그

    왕십리맛집
    홍대맛집
    맛집
    와우
    월드오브워크래프트
    강원도여행
    제주도맛집
    떡볶이
    자취
    돈벌기
    양양 가볼만한 곳
    오징어난전
    김포맛집
    시즈오카
    발산맛집
    강서구맛집
    가양맛집
    마곡맛집
    ChatGPT
    발산 회식
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JangGiraffe
[Android] 웹 이미지를 ImageView에 적용시키기
상단으로

티스토리툴바