本文实例为大家分享了Android获取网络图片并显示的具体代码,供大家参考,具体内容如下

使用 HttpURLConnection 获得连接,再使用 InputStream 获得图片的数据流,通过 BitmapFactory 将数据流转换为 Bitmap,再将 Bitmap 通过线程的 Message 发送出去,Handler 接收到消息就会通知 ImageView 显示出来。

 

 

记得要在manifest文件中添加 < uses-permission android:name=”android.permission.INTERNET” />上网权限,不然无法显示图片。

工程文件结构:

 

布局文件中就一个 ImageView 用来显示图片,一个 Button 用来获取图片。

MainActivity.java

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

public class MainActivity extends AppCompatActivity {

  Button button;

  ImageView imageView;

  String url = "http://i4.buimg.com/dccba6282641a9e0.jpg";

  //String textURL = "http://192.168.1.104:8080/add.jsp";

 

  @Override

  protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

 

    button = (Button) findViewById(R.id.button);

    imageView = (ImageView) findViewById(R.id.imageView);

 

    button.setOnClickListener(new View.OnClickListener() {

      @Override

      public void onClick(View v) {

        new Thread(new Runnable() {

          @Override

          public void run() {

            Bitmap bmp = getURLimage(url);

            Message msg = new Message();

            msg.what = 0;

            msg.obj = bmp;

            System.out.println("000");

            handle.sendMessage(msg);

          }

        }).start();

      }

    });

  }

 

  //在消息队列中实现对控件的更改

  private Handler handle = new Handler() {

    public void handleMessage(Message msg) {

      switch (msg.what) {

        case 0:

          System.out.println("111");

          Bitmap bmp=(Bitmap)msg.obj;

          imageView.setImageBitmap(bmp);

          break;

      }

    };

  };

 

  //加载图片

  public Bitmap getURLimage(String url) {

    Bitmap bmp = null;

    try {

      URL myurl = new URL(url);

      // 获得连接

      HttpURLConnection conn = (HttpURLConnection) myurl.openConnection();

      conn.setConnectTimeout(6000);//设置超时

      conn.setDoInput(true);

      conn.setUseCaches(false);//不缓存

      conn.connect();

      InputStream is = conn.getInputStream();//获得图片的数据流

      bmp = BitmapFactory.decodeStream(is);//读取图像数据

      //读取文本数据

      //byte[] buffer = new byte[100];

      //inputStream.read(buffer);

      //text = new String(buffer);

      is.close();

    } catch (Exception e) {

      e.printStackTrace();

    }

    return bmp;

  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多相关文章

  1. Android的程序关联和自定义类型文件的方法步骤和实现过程
  2. Android(安卓)拍照强制横屏解决...
  3. Android:全面&详细的解析Android数据流量统计流程与分析方法(流量
  4. Ubuntu下使用Android(安卓)ADB
  5. Android实现自定义带文字和图片的Button
  6. Unity上同时兼容Android和IOS的JSON库
  7. 关于android中drawable—hdpi、drawable—mdpi、drawable—ldpi
  8. Android动态加载so文件
  9. Android之JNI和NDK的那些事

随机推荐

  1. Android(安卓)Process生命周期
  2. android之布局xml各种控件属性详解
  3. android重写Dialog
  4. Android(安卓)Wifi的使用
  5. Android(安卓)Testing Point
  6. android 取手机号码
  7. Android(安卓)UI控件详解-GridView(网格
  8. android 登陆界面
  9. Android(安卓)用手动组拼的方式生成xml
  10. Android系统版本和API等级(level)对照表