android ImageView 에 이미지를 URL로 가져와서 뿌려주는 방법
출처 : http://apphappy.tistory.com/131
나는 이미지를 한 화면에서만 보여줄게 아니라서 재사용할 수 있도록 아예 Bean 으로 빼놔서 사용했다.
참고참고.
아, URL 로 작업하는 부분이라 Bean 안에 메소드는 별도의 Thread 에서 돌도록 처리함.
* Activity / Fragment 에서 호출하여 사용하는 방법 *
1 2 3 4 5 6 7 | imgPath = getString(R.string.ip)+"/images/profile/"+user.getProfileImg(); LoadImage loadImage = new LoadImage(imgPath); bitmap = loadImage.getBitmap(); userProfileImg.setImageBitmap(bitmap); //아래 두 줄은 이미지를 원형으로 보이게끔 하는 소스 //근데 배경이 검은색으로 나와서 잠시 주석처리 함 /*userProfileImg.setBackground(new ShapeDrawable(new OvalShape())); userProfileImg.setClipToOutline(true);*/ | cs |
* LoadImage Bean *
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package com.nadri.util; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; //프로필사진을 외부에서 받아 ImageView에 씌우는 메소드 public class LoadImage { private String imgPath; private Bitmap bitmap; public LoadImage(String imgPath){ this.imgPath = imgPath; } public Bitmap getBitmap(){ Thread imgThread = new Thread(){ @Override public void run(){ try { URL url = new URL(imgPath); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setDoInput(true); conn.connect(); InputStream is = conn.getInputStream(); bitmap = BitmapFactory.decodeStream(is); }catch (IOException e){ } } }; imgThread.start(); try{ imgThread.join(); }catch (InterruptedException e){ e.printStackTrace(); }finally { return bitmap; } } } | cs |
반응형
'MOBILE > Android' 카테고리의 다른 글
[Android] Fragment 뒤로가기 버튼누르면 이전 Fragment 보여지게 하는 방법 (4) | 2018.08.03 |
---|---|
안드로이드 지문인식 사용하는 방법 (2) | 2018.08.03 |
안드로이드 원하는 뷰 좌우로 흔들리게 애니메이션 설정하는 방법 (0) | 2018.08.03 |
안드로이드 이미지 본연의 크기를 고집하는 xml 소스 (0) | 2018.08.03 |
안드로이드 Fragment 끼리의 전환 후 뒤로가기 버튼 클릭 먹히게끔 설정하는 방법 (0) | 2018.08.03 |
댓글