Android中显示网络上的图片
3754 点击·0 回帖
![]() | ![]() | |
![]() | 在Android中显示网络上的图片,需要先根据url找到图片地址,然后把该图片转化成java的InputStream,然后把该InputStream流转化成BitMap,BitMap可以直接显示在Android中的ImageView里。这就是显示网络上图片的思路,实现起来很简单。下面让我们看一下实现起来的过程。 首先在AndroidManifest.xml中给程序加上访问internet的权限: <uses-permissionAndroid:name="Android.permission.INTERNET" /> 然后在布局文件中加入一个ImageView,用来显示网络上的图片: [html] <span style="font-size:16px;"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:layout_width="fill_parent" Android:layout_height="fill_parent" Android:orientation="vertical" > <TextView Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:text="@string/hello" /> <ImageView Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:id="@+id/imageView" /> </LinearLayout> </span> <span style="font-size:16px;"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:layout_width="fill_parent" Android:layout_height="fill_parent" Android:orientation="vertical" > <TextView Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:text="@string/hello" /> <ImageView Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:id="@+id/imageView" /> </LinearLayout> </span> 在主程序的Activity中写从网络中得到图片,并转化成InputStream,然后再转化成可以显示在ImageView里的Bitmap。 [java] <span style="font-size:16px;">package com.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.widget.ImageView; public class NetImageActivity extends Activity { /** Called when the activity is first created. */ String imageUrl = ""; Bitmap bmImg; ImageView imView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imView = (ImageView) findViewById(R.id.imageView); 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; } } </span> <span style="font-size:16px;">package com.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.widget.ImageView; public class NetImageActivity extends Activity { /** Called when the activity is first created. */ String imageUrl = "http://www.atcpu.com/uploadfile/2012/0416/20120416110127604.jpg"; Bitmap bmImg; ImageView imView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imView = (ImageView) findViewById(R.id.imageView); 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; } } </span> 然后运行程序就可以显示出来网络上的图片了。 运行效果: ![]() 摘自 北京大学-google Android实验室 | |
![]() | ![]() |