当前位置: 代码迷 >> Android >> 怎么在Android当中显示网络图片
  详细解决方案

怎么在Android当中显示网络图片

热度:92   发布时间:2016-05-01 15:45:01.0
如何在Android当中显示网络图片

写在前面:本文来自以下URL

http://www.eoeandroid.com/viewthread.php?tid=26&extra=page%3D2

推荐大家到这个论坛,和原文查看

?

?

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. ? [email protected]
  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. public Bitmap returnBitMap(String url) {??
  37. URL myFileUrl = null;??
  38. Bitmap bitmap = null;??
  39. try {??
  40. myFileUrl = new URL(url);??
  41. } catch (MalformedURLException e) {??
  42. e.printStackTrace();??
  43. }??
  44. try {??
  45. HttpURLConnection conn = (HttpURLConnection) myFileUrl??
  46. ??.openConnection();??
  47. conn.setDoInput(true);??
  48. conn.connect();??
  49. InputStream is = conn.getInputStream();??
  50. bitmap = BitmapFactory.decodeStream(is);??
  51. is.close();??
  52. } catch (IOException e) {??
  53. ??e.printStackTrace();??
  54. ??}??
  55. ??return bitmap;??
  56. }??
  57. ??
  58. }??
复制代码
  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" />??
复制代码
  相关解决方案