activity_main

界面代码如下

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><LinearLayoutandroid:id="@+id/ll_text"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginBottom="5dp"android:layout_marginTop="10dp"android:orientation="horizontal"><EditTextandroid:id="@+id/et_path"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginRight="3dp"android:layout_weight="1"android:background="#EBEBEB"android:hint="请输入图片路径"android:inputType="textUri"android:paddingLeft="3dp"android:textColor="#696969"android:textSize="20sp" /><Buttonandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="4"android:background="#EBEBEB"android:onClick="click"android:text="浏览"android:textColor="#696969"android:textSize="20sp" /></LinearLayout><ImageViewandroid:id="@+id/iv_pic"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@+id/ll_text"android:scaleType="fitCenter" />
</RelativeLayout>

MainActivity

代码如下

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {protected static final int CHANGE_UI = 1;protected static final int ERROR = 2;private EditText et_path;private ImageView ivPic;// 主线程创建消息处理器private Handler handler = new Handler() {public void handleMessage(android.os.Message msg) {if (msg.what == CHANGE_UI) {Bitmap bitmap = (Bitmap) msg.obj;ivPic.setImageBitmap(bitmap);} else if (msg.what == ERROR) {Toast.makeText(MainActivity.this, "显示图片错误",Toast.LENGTH_SHORT).show();}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_path = (EditText) findViewById(R.id.et_path);ivPic = (ImageView) findViewById(R.id.iv_pic);}public void click(View view) {final String path = et_path.getText().toString().trim();if (TextUtils.isEmpty(path)) {Toast.makeText(this, "图片路径不能为空", Toast.LENGTH_SHORT).show();} else {//子线程请求网络,Android4.0以后访问网络不能放在主线程中new Thread() {private HttpURLConnection conn;private Bitmap bitmap;public void run() {// 连接服务器 get 请求 获取图片try {//创建URL对象URL url = new URL(path);// 根据url 发送 http的请求conn = (HttpURLConnection) url.openConnection();// 设置请求的方式conn.setRequestMethod("GET");//设置超时时间conn.setConnectTimeout(5000);// 得到服务器返回的响应码int code = conn.getResponseCode();//请求网络成功后返回码是200if (code == 200) {//获取输入流InputStream is = conn.getInputStream();//将流转换成Bitmap对象bitmap = BitmapFactory.decodeStream(is);//将更改主界面的消息发送给主线程Message msg = new Message();msg.what = CHANGE_UI;msg.obj = bitmap;handler.sendMessage(msg);} else {//返回码不等于200 请求服务器失败Message msg = new Message();msg.what = ERROR;handler.sendMessage(msg);}} catch (Exception e) {e.printStackTrace();Message msg = new Message();msg.what = ERROR;handler.sendMessage(msg);}//关闭连接conn.disconnect();}}.start();}}
}

最后记得给 AndroidManifest中 加上 访问网络的权限

   <uses-permission android:name="android.permission.INTERNET"/>

最后打开虚拟机

输入图片地址
https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1576162426696&di=d84e2f38070db06a909401060b047222&imgtype=0&src=http%3A%2F%2Fpic1.zhimg.com%2F50%2Fv2-fe41e8f50ce5a9d096f29585551d02c8_hd.jpg

点击浏览即可

android studio 读取网络图片相关推荐

  1. android studio读取本地json,Android Studio读取和创建Json

    1,984 JSON的基本语法 1.JSon的四个基本规则 (1)并列的数据之间用逗号(,)分隔 (2)映射用冒号(:)表示 (3)并列数据的集合(数组)用方括号([])表示 (4)映射的集合(对象) ...

  2. 解决Android Studio读取不了SD卡上的文件

    问题: 上课要求练习操作SD卡上的文件,界面如图所示,要求点击保存按钮会出现success的toast,并可以读取文件内容.但是我一直出现的都是failure,原因是不能执行这句代码:Environm ...

  3. android studio 读取内存txt文件_SharedPreference与文件存储

    Android常用数据存储方式有SharedPreferences存储数据(虽然还是属于内部存储).文件存储(内部,外部).SQLite数据库存储.ContentProvider存储数据.网络存储数据 ...

  4. android之读取网络图片并显示

    参考: https://blog.csdn.net/bzlj2912009596/article/details/88367387 https://www.jianshu.com/p/7eee7b13 ...

  5. Android studio 读取sd卡mp3 播放音乐

    第一步布局文件<ListViewandroid:id="@+id/lv"android:layout_width="409dp"android:layou ...

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

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

  7. 关于Android Studio项目的Gradle构建 泡在网上的日子 / 文 发表于2016-02-16 12:16 第2500次阅读 Gradle 3 编辑推荐:稀土掘金,这是一个针对技术开发者的

    http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2016/0216/3969.html 编辑推荐:稀土掘金,这是一个针对技术开发者的一个 ...

  8. android studio 写文件,在Android Studio中从我自己的类读取和写入文本文件

    我一直在试图创建一个名为TextFileReaderWriter的类我想使用getters和setters来读取和写入文本文件,以便我可以调用类,并通过简单地使用setfileContents(som ...

  9. android 音乐播放器 获取sd卡所有音乐文件,Android Studio音乐播放器无法读取SD卡,只有内部存储器...

    我很抱歉,如果这原来是一个愚蠢的问题,它可能会成为一个快速修复,但我只是无法弄清楚.我在android studio中创建了音乐播放器,并且没有任何sdcard上的歌曲不会显示在列表视图中,只有内部内 ...

最新文章

  1. JSON数据的HTTP Header应该怎么标记?
  2. 【 Verilog HDL 】基本运算逻辑的Verilog HDL 模型
  3. IP虚拟分片重组配置命令
  4. OpenCV 图像平移
  5. mysql5.6 函数索引_聊聊MySQL中的索引
  6. SAP实施顾问参与主数据搜集的四大好处
  7. Activity功能控件
  8. 深入浅出Mysql(四)
  9. 考研计算机专业复试,计算机专业考研复试准备
  10. pycharm导入本地py文件时,模块下方出现红色波浪线
  11. python怎么打开程序管理器_python进程管理工具supervisor的安装与使用教程
  12. error C2360: 参数初始化操作由“case”标签跳过
  13. 【小白冲冲冲!!!】补1: 说一下最大化后验概率
  14. Q版周鸿祎:带你2分钟看懂互联网+
  15. windows商店直接安装ubuntu子系统
  16. 前端程序员福利 利用node写接口
  17. 桌面智能盆栽——【1】项目背景
  18. Discuz论坛怎么样防止被人恶意灌水
  19. L2-015 互评成绩(Python3)
  20. Phoenix 基本介绍

热门文章

  1. Mac免费思维导图软件:幕布 for mac
  2. 常用应用层协议及HTTP协议
  3. python怎么写代码求年华收益率_python计算年收益
  4. NuttX 任务管理
  5. pyqt5做一个工具箱
  6. 哪些能恢复网站服务器的数据的方式呢?
  7. gltf骨骼动画解析笔记
  8. 期货什么是涨跌(期货是看涨还是看跌)
  9. WOJ1017-Billiard Ball
  10. html天气预报静态页面,天气预报_HTML静态页面_带读秒时钟