1. 程式人生 > >使用httpget方式獲取網路上的圖片

使用httpget方式獲取網路上的圖片

在使用httpget方法獲取網路資源的時候,需要如下步驟:

1;因為httpClient(是一個公共介面 )所以首先要實現這個的介面,使用DefaultHttpClient()

HttpClient client = newDefaultHttpClient();

2:建立一個httpGet物件傳入目標網路地址,

httpGet get= new httpGet url);

3:然後呼叫HttpClient Execute ()方法執行後會返回一個HttpResponse。伺服器中的資料都保護在其中,(但此資料不可直接使用需經過處理)

HttpResponse response= client.execute

get);

4:呼叫 HttpResponse類中的getEntity方法獲取訊息實體,然後進行處理

例如:如果是字元型的使用如下方法:

 HttpEnity enity = responce.getEntity ();

String info = EntityUtils.tostring (entity,”utf-8”);

如果是圖片的話

 HttpEnity enity = responce.getEntity ();

byte[] data = EntityUtils .toByteArray (entiy);

Bitmap bitmap = BitmapFactory.decodeByteArray (data, 0 , data.length);

程式碼如下:

public class MainActivity extends Activity {

private Button button = null;

private ImageView image = null;

String imagpath = "http://10.0.2.2:8080/ServiceForPicture/aa.jpg";

HttpClient client = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main

);

button = (Button) findViewById(R.id.button);

image = (ImageView) findViewById(R.id.imageView);

client = new DefaultHttpClient();

button.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

new MyTask().execute(imagpath);

}

});

}

class MyTask extends AsyncTask<String, Void, Bitmap> {

@Override

protected void onPostExecute(Bitmap result) {

super.onPostExecute(result);

image.setImageBitmap(result);

}

@Override

protected Bitmap doInBackground(String... params) {

Bitmap bitmap = null;

String url = params[0];

HttpGet get = new HttpGet(url);

try {

HttpResponse httpResponse = client.execute(get);

HttpEntity entity = httpResponse.getEntity();

byte[] data = EntityUtils.toByteArray(entity);

bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);// 將圖片轉換成bitmap型別

catch (ClientProtocolException e) {

// TODO 自動生成的 catch 塊

e.printStackTrace();

catch (IOException e) {

// TODO 自動生成的 catch 塊

e.printStackTrace();

}

return bitmap;

}

}

}

對於佈局檔案中新增一個Button, 和一個imageview即可。(這裡就不在貼出)

然後在清單檔案中宣告網路許可權後,然後即可在模擬器上執行。