如何在Android当中显示网络图片

来源:互联网 发布:房产中介管理系统源码 编辑:程序博客网 时间:2024/05/27 20:45

在android当中显示一张网络图片的时候,其实是比较麻烦的。

首先得把这个网络图片转换成java的imputstream流,然后再把这个留转换成一个bitMap.
bitMap是可以作为参数传给imageView的。

在下边的returnBitMap函数是最核心的,也是大家可以重用的,它负责把一个url的网络图片变成一个本地的BitMap。

 
  1. package com.jinyan.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.util.Log;  
  14. import android.view.View;  
  15. import android.view.View.OnClickListener;  
  16. import android.widget.Button;  
  17. import android.widget.ImageView;  
  18.   
  19. public class ActivityMain extends Activity {  
  20. /** Called when the activity is first created. */  
  21.   
  22. String imageUrl = "http://i.pbase.com/o6/92/229792/1/80199697.uAs58yHk.50pxCross_of_the_Knights_Templar_svg.png";  
  23. Bitmap bmImg;  
  24. ImageView imView;  
  25.   
  26. Button button1;  
  27.   
  28. @Override  
  29. public void onCreate(Bundle savedInstanceState) {  
  30. super.onCreate(savedInstanceState);  
  31. setContentView(R.layout.main);  
  32. imView = (ImageView) findViewById(R.id.imview);  
  33. imView.setImageBitmap(returnBitMap(imageUrl));  
  34.   
  35.   
  36. }  
  37.   
  38. public Bitmap returnBitMap(String url) {  
  39. URL myFileUrl = null;  
  40. Bitmap bitmap = null;  
  41. try {  
  42. myFileUrl = new URL(url);  
  43. catch (MalformedURLException e) {  
  44. e.printStackTrace();  
  45. }  
  46. try {  
  47. HttpURLConnection conn = (HttpURLConnection) myFileUrl  
  48. .openConnection();  
  49. conn.setDoInput(true);  
  50. conn.connect();  
  51. InputStream is = conn.getInputStream();  
  52. bitmap = BitmapFactory.decodeStream(is);  
  53. is.close();  
  54. catch (IOException e) {  
  55. e.printStackTrace();  
  56. }  
  57. return bitmap;  
  58. }  
  59.   
  60. }  

 



 
  1. xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3. android:orientation="vertical" android:layout_width="fill_parent"  
  4. android:layout_height="fill_parent">  
  5. <ImageView android:id="@+id/imview" android:layout_width="wrap_content"  
  6. android:layout_height="wrap_content" android:layout_gravity="center" />  
  7. LinearLayout>  
注意,想要让你的程序可以访问网络,你必须在menifest文件里边增加:
 
  1. <uses-permission android:name="android.permission.INTERNET" />  



完整的menifest文件为:
 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.jinyan.image" android:versionCode="1"  
  4.     android:versionName="1.0.0">  
  5.     <uses-permission android:name="android.permission.INTERNET" />  
  6.     <application android:icon="@drawable/icon"  
  7.         android:label="@string/app_name">  
  8.         <activity android:name=".ActivityMain"  
  9.             android:label="@string/app_name">  
  10.             <intent-filter>  
  11.                 <action android:name="android.intent.action.MAIN" />  
  12.                 <category  
  13.                     android:name="android.intent.category.LAUNCHER" />  
  14.             </intent-filter>  
  15.         </activity>  
  16.     </application>  
  17. </manifest>  
原创粉丝点击