본문 바로가기

Android/URLConnection, Image download

Android URLConnection, Image download example

안드로이드에서 URLConnection을 이용하여 웹사이트의 이미지를 다운로드하고 보여주는 예

res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> </LinearLayout>


AndroidManifest.xml 에는 다음과 같이 권한을 설정하는 부분이 있어야 한다

<uses-permission android:name="android.permission.INTERNET"/>


MainActivity.java

package com.example.androidapp; import java.io.*; import java.net.*; import android.app.*; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.*; import android.util.*; import android.widget.*; public class MainActivity extends Activity { ImageView iv; Handler handler = new Handler(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); iv = (ImageView) findViewById(R.id.imageView1); new Thread() { public void run() { connect(); } }.start(); } Bitmap bitmap; private void connect() { try{ URL url = new URL("http://t1.gstatic.com/images?q=tbn:ANd9GcS6RG0nsiyrUwKy3aB_cxASREkk7tO3fEbxE7w2YHxYzeZTTUBn"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); if(conn!=null) { conn.setConnectTimeout(10000); conn.setRequestMethod("GET"); conn.setDoInput(true); conn.setDoOutput(true); int resCode = conn.getResponseCode(); if(resCode == HttpURLConnection.HTTP_OK) { InputStream is = conn.getInputStream(); bitmap = BitmapFactory.decodeStream(is); is.close(); conn.disconnect(); } } handler.post(new Runnable() { public void run() { iv.setImageBitmap(bitmap); } }); }catch(Exception ex) { ex.printStackTrace(); Log.e("접속오류", ex.toString()); } } }