参考:

https://blog.csdn.net/bzlj2912009596/article/details/88367387

https://www.jianshu.com/p/7eee7b1382a2

几个概念:

1、在子线程,不能更新UI线程,需要使用Handler来处理

2、使用HttpURLConnection来获取网络的图片

3、获取网络的请求,不能在UI线程中进行,只能在子线程中进行

代码:

package com.example.grammartest;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.text.Editable;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;public class NetPictureActivity extends AppCompatActivity {String tag = "NetPictureActivity";Bitmap bitmap;Handler mHandler = new Handler(new Handler.Callback() {@Overridepublic boolean handleMessage(@NonNull Message msg) {switch (msg.what){case 1:{final ImageView iv = findViewById(R.id.NetPView);iv.setImageBitmap(bitmap);}break;}return true;}});@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_net_picture);InitView();}void InitView(){EditText et = findViewById(R.id.NetPUrl);Button bt = findViewById(R.id.NetPBt);final ImageView iv = findViewById(R.id.NetPView);final String strurl = et.getText().toString();Log.i(tag,strurl);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {new Thread(new Runnable() {@Overridepublic void run() {try {URL url = new URL(strurl);//得到connection对象。HttpURLConnection connection = (HttpURLConnection) url.openConnection();//设置请求方式connection.setRequestMethod("GET");//连接connection.connect();//得到响应码int responseCode = connection.getResponseCode();if(responseCode == HttpURLConnection.HTTP_OK){//得到响应流InputStream inputStream = connection.getInputStream();int iLength = connection.getContentLength();//将响应流转换成字符串Log.i(tag,"responseCode"+responseCode +":"+iLength);bitmap = BitmapFactory.decodeStream(inputStream);Message m = mHandler.obtainMessage();m.what = 1;mHandler.sendMessage(m);inputStream.close();connection.disconnect();}} catch (Exception e) {e.printStackTrace();Log.i(tag,e.getMessage());}}}).start();}});}
}

android之读取网络图片并显示相关推荐

  1. Android开发-下载网络图片并显示到本地

    Android下载网络图片的流程是: 发送网络请求->将图片以流的形式下载下来->将流转换为Bitmap并赋给ImageView控件. 注意点 最新的Android系统不可以在主线程上请求 ...

  2. android studio 读取网络图片

    activity_main 界面代码如下 <?xml version="1.0" encoding="utf-8"?> <RelativeLa ...

  3. android显示多个网络图片,Android加载网络图片并显示占位图

    我们使用glide来实现ImageView加载网络图片的功能,首先引入依赖包 implementation "com.github.bumptech.glide:glide:3.7.0&qu ...

  4. android获取网络图片方法,Android获取网络图片并显示的方法

    本文实例为大家分享了Android获取网络图片并显示的具体代码,供大家参考,具体内容如下 使用 HttpURLConnection 获得连接,再使用 InputStream 获得图片的数据流,通过 B ...

  5. android gridview 计算器,用GridView显示得到的网络图片

    想看效果图: 主要代码如下: package yc.get_image: import java.io.BufferedInputStream: import java.io.IOException: ...

  6. Android中读取NFC标签卡中的ID

    场景 APP中读取NFC卡中的标签ID,作为用户的唯一标识进行登录验证. 首先需要确保手机支持NFC功能.其次具备一张NFC卡片. 读取id就是利用的读卡器模式,当把卡片靠近手机的NFC天线的时候,N ...

  7. AsyncTask下载网络图片并显示下载进度

    1.AsyncTask概述 AsyncTask是一个轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新UI,AsyncTask封装了Thread和 ...

  8. Android开发读取通讯录信息

    需求 通过搜索联系人的姓名获取相应的详细人信息,也可通过右侧字母条搜索相应的联系人信息. 主要代码如下: MainActivity public class MainActivity extends ...

  9. Android 进阶:网络图片加载 - Glide篇

    概述: Glide官网 Glide是一个快速高效的Android图片加载库,注重于平滑的滚动.Glide提供了易用的API,高性能.可扩展的图片解码管道(decode pipeline),以及自动的资 ...

最新文章

  1. Java学习笔记22
  2. java设计模式---合成模式
  3. mysql2000数据库四合一_sqlserver2000个人版64
  4. 红帽linux6.0安装教程,第 14 章 引导安装程序
  5. u大师u盘装系统win7_优盘如何装系统 u盘装系统的步骤
  6. 交叉编译docker_端侧推理引擎Tengine初识:安卓平台交叉编译并跑通MobileNetV1
  7. 一图看懂cortex-M0/M3矢量表,记住LSB置1表示Thumb
  8. postman数据保存在哪里_快速掌握接口测试利器Postman
  9. dirent struct_struct dirent中d_name长度问题
  10. Vue基础1-如何创建一个vue实例
  11. 第4章_1——SQL语句实现MySQL增删改查
  12. hp打印机被识别为了usb大容量存储
  13. Oracle:Locked by transaction: console [表名]
  14. 【一起入门NLP】中科院自然语言处理第16课-简明扼要:红到发紫的prompt是什么?【上】
  15. 软件模拟中美gdp今后几年的变化情况
  16. 一文搞懂指标采集利器 Telegraf
  17. zipimport.ZipImportError: can‘t decompress data; zlib not available
  18. 2022年武汉市经开区企业研发费用投入奖励补贴政策申报条件以及奖补标准!
  19. Android开发之控制手机振动(Vibrator的使用)
  20. 模板应用到多个主机 zabbix_玩转zabbix之快速入门,超全组件讲解

热门文章

  1. Newtonsoft 反序列化字符串
  2. 计算DataTable某列的值(SUM)
  3. 【海洋女神原创】关于installshield“完美卸载”的改进方法
  4. 用Netty实现RPC
  5. Django项目中集成富文本编辑器的通用方法,适合KindEditor,xhEditor,NicEditor,wymeditor等 .
  6. 2022年IT热门能力
  7. BestCoder Round #90 Kblack loves flag
  8. BP神经网络参数设置及实例
  9. 项目部署到服务器后字符编码,将UTF-8编码的数据发布到服务器会丢失某些字符...
  10. 调度失败:执行器地址为空_三千字带你搞懂XXL-JOB任务调度平台