Android中显示网络上的图片


在Android中显示网络上的图片,需要先根据url找到图片地址,然后把该图片转化成java的InputStream,然后把该InputStream流转化成BitMap,BitMap可以直接显示在android中的ImageView里。这就是显示网络上图片的思路,实现起来很简单。下面让我们看一下实现起来的过程。

首先在AndroidManifest.xml中给程序加上访问Internet的权限:

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

然后在布局文件中加入一个ImageView,用来显示网络上的图片:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <TextView  
  8.         android:layout_width="fill_parent"  
  9.         android:layout_height="wrap_content"  
  10.         android:text="@string/hello" />  
  11.     <ImageView   
  12.         android:layout_width="wrap_content"  
  13.         android:layout_height="wrap_content"  
  14.         android:id="@+id/imageView" />  
  15.   
  16. </LinearLayout>  

在主程序的Activity中写从网络中得到图片,并转化成InputStream,然后再转化成可以显示在ImageView里的Bitmap。

  1. package com.image;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.InputStream;  
  5. import java.net.HttpURLConnection;  
  6. import java.net.MalformedURLException;  
  7. import java.net.URL;  
  8.   
  9. import android.app.Activity;  
  10. import android.graphics.Bitmap;  
  11. import android.graphics.BitmapFactory;  
  12. import android.os.Bundle;  
  13. import android.widget.ImageView;  
  14.   
  15. public class NetImageActivity extends Activity {  
  16.     /** Called when the activity is first created. */  
  17.      String imageUrl = "http://www.linuxboy.net/upload/bkjia.jpg";    
  18.      Bitmap bmImg;    
  19.      ImageView imView;    
  20.     @Override  
  21.     public void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.main);  
  24.         imView = (ImageView) findViewById(R.id.imageView);    
  25.         imView.setImageBitmap(returnBitMap(imageUrl));    
  26.     }  
  27.       
  28.     public Bitmap returnBitMap(String url){  
  29.         URL myFileUrl = null;    
  30.         Bitmap bitmap = null;   
  31.         try {    
  32.             myFileUrl = new URL(url);    
  33.         } catch (MalformedURLException e) {    
  34.             e.printStackTrace();    
  35.         }    
  36.         try {    
  37.             HttpURLConnection conn = (HttpURLConnection) myFileUrl    
  38.               .openConnection();    
  39.             conn.setDoInput(true);    
  40.             conn.connect();    
  41.             InputStream is = conn.getInputStream();    
  42.             bitmap = BitmapFactory.decodeStream(is);    
  43.             is.close();    
  44.         } catch (IOException e) {    
  45.               e.printStackTrace();    
  46.         }    
  47.               return bitmap;    
  48.     }    
  49. }  

然后运行程序就可以显示出来网络上的图片了。

运行效果:

更多Android相关信息见Android 专题页面 http://www.bkjia.com/topicnews.aspx?tid=11

相关内容