안드로이드에서 HttpClient를 이용하여 웹사이트의 이미지를 가져와서 출력하는 예
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 org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; 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{ HttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet("http://t1.gstatic.com/images?q=tbn:ANd9GcS6RG0nsiyrUwKy3aB_cxASREkk7tO3fEbxE7w2YHxYzeZTTUBn"); HttpResponse response = httpClient.execute(httpGet); InputStream is = response.getEntity().getContent(); bitmap = BitmapFactory.decodeStream(is); handler.post(new Runnable() { public void run() { iv.setImageBitmap(bitmap); } }); }catch(Exception ex) { ex.printStackTrace(); Log.e("접속오류", ex.toString()); } } }