【Android】顯示網絡圖片代碼分析

 天翼空間社區上看到的,轉來收藏。

在android 當中顯示一張網絡圖片的時候,其實是比較麻煩的。首先得把這個網絡圖片轉換成java的imputstream流,然後再把這個留轉換成一個bitMap.

bitMap是可以作爲參數傳給imageView的。

在下邊的returnBitMap函數是最核心的,也是大家可以重用的,它負責把一個url的網絡圖片變成一個本地的BitMap。

  package com.jinyan.image;

  import java.io.IOException;

  import java.io.InputStream;

  import java.net.HttpURLConnection;

  import java.net.MalformedURLException;

  import java.net.URL;

  import android.app .Activity;

  import android.graphics.Bitmap;

  import android.graphics.BitmapFactory;

  import android.os.Bundle;

  import android.util.Log;

  import android.view.View;

  import android.view.View.OnClickListener;

  import android.widget.Button;

  import android.widget.ImageView;

  public class ActivityMain extends Activity {

  /** Called when the activity is first created. */

  String imageUrl = "http://i.pbase.com/o6/92/229792/1/80199697.uAs58yHk.50pxCross_of_the_Knights_Templar_svg.png";

  Bitmap bmImg;

  ImageView imView;

  Button button1;

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  imView = (ImageView) findViewById(R.id.imview);

  imView.setImageBitmap(returnBitMap(imageUrl));

  }

  public Bitmap returnBitMap(String url) {

  URL myFileUrl = null;

  Bitmap bitmap = null;

  try {

  myFileUrl = new URL(url);

  } catch (MalformedURLException e) {

  e.printStackTrace();

  }

  try {

  HttpURLConnection conn = (HttpURLConnection) myFileUrl

  .openConnection();

  conn.setDoInput(true);

conn.connect();

  InputStream is = conn.getInputStream();

  bitmap = BitmapFactory.decodeStream(is);

  is.close();

  } catch (IOException e) {

  e.printStackTrace();

  }

  return bitmap;

  }

  }

  < xml version="1.0" encoding="utf-8"?>

  < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

  android:orientation="vertical" android:layout_width="fill_parent"

  android:layout_height="fill_parent">

  < ImageView android:id="@+id/imview" android:layout_width="wrap_content"

  android:layout_height="wrap_content" android:layout_gravity="center" />

  LinearLayout>

注意,想要讓你的程序 可以訪問網絡,你必須在menifest文件裏邊增加:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章