안녕세계
[안드로이드] ImageView에 image url로 이미지 지정 본문
[안드로이드] ImageView에 image url로 이미지 지정
Junhong Kim 2017. 6. 13. 22:38728x90
반응형
* 안드로이드 앱을 개발하면서 url 주소를 통해서 이미지를 불러올 수 있습니다.
1. 네트워크 작업은 메인 Thread가 아닌 별도의 Thread나 AsyncTask에서 해야합니다.
2. URL 이미지를 로드하는 작업 Thread가 완료될 때까지, UI 관련 기능을 담당하는 메인 Thread는 대기해야 합니다.
3.인터넷 관련 작업을 할 때는 INTERNET permission을 허용해주어야 합니다.
[manifest/AndroidManifest.xml]
<uses-permission android:name="android.permission.INTERNET" />
[java/MainActivity]
public class MainActivity extends AppCompatActivity {
ImageView imageView;
Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView)findViewById(R.id.imageView);
// 안드로이드에서 네트워크와 관련된 작업을 할 때,
// 반드시 메인 Thread가 아닌 별도의 작업 Thread를 생성하여 작업해야 한다.
Thread mThread = new Thread() {
@Override
public void run() {
try {
URL url = new URL("http://www.gettyimagesgallery.com/Images/Exhibitions/Poolside/01.jpg");
// Web에서 이미지를 가져온 뒤
// ImageView에 지정할 Bitmap을 만든다
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true); // 서버로 부터 응답 수신
conn.connect();
InputStream is = conn.getInputStream(); // InputStream 값 가져오기
bitmap = BitmapFactory.decodeStream(is); // Bitmap으로 변환
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
};
mThread.start(); // Thread 실행
try {
// 메인 Thread는 별도의 작업 Thread가 작업을 완료할 때까지 대기해야한다
// join()를 호출하여 별도의 작업 Thread가 종료될 때까지 메인 Thread가 기다리게 한다
mThread.join();
// 작업 Thread에서 이미지를 불러오는 작업을 완료한 뒤
// UI 작업을 할 수 있는 메인 Thread에서 ImageView에 이미지를 지정한다
imageView.setImageBitmap(bitmap);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
※ 참고
[1] http://apphappy.tistory.com/131
728x90
반응형
'Client > Android' 카테고리의 다른 글
[안드로이드] Custom - Dialog (3) | 2017.08.02 |
---|---|
[안드로이드] VersionName & VersionCode (0) | 2017.08.01 |
[안드로이드] .apk 파일 추출 (배포용, 테스트용) (0) | 2017.06.12 |
[안드로이드] Splash - 앱 로딩 화면 (0) | 2017.03.20 |
[안드로이드] Toolbar (0) | 2017.01.17 |
Comments