一、创建一个“网络图片浏览器的应用程序”,并设计用户交互界面,“网络图片浏览器”对应的布局文件(activity_main.xml)代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:orientation="vertical"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.bz0209.myapplication.MainActivity"><ImageView
        android:layout_weight="1000"android:id="@+id/iv"android:layout_width="fill_parent"android:layout_height="wrap_content"/><EditText
        android:singleLine="true"android:id="@+id/et_path"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="http://b.hiphotos.baidu.com/image/w%3D310/sign=a439f5b24510b912bfc1f0fff3fdfcb5/83025aafa40f4bfb92c52c5d014f78f0f73618a5.jpg"android:hint="请输入图片路径"/><Button
        android:onClick="click"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="浏览"/></LinearLayout>

效果图如下:

二、编写界面交互代码(MainActivity),当界面创建好后,需要在MainActivity里面编写与界面交互的代码。用于实现请求指定地址的网络图片,并将服务器返回的图片展现在界面上。具体代码如下:

package com.example.bz0209.myapplication;import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
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 iv;//主线创建消息处理器private Handler handler=new Handler(){public void handleMessage(android.os.Message msg){if (msg.what==CHANGE_UI){Bitmap bitmap=(Bitmap)msg.obj;iv.setImageBitmap(bitmap);}else if (msg.what==ERROR){Toast.makeText(MainActivity.this,"显示图片错误",0).show();}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_path=(EditText)findViewById(R.id.et_path);iv=(ImageView) findViewById(R.id.iv);}public void click(View view){final String path=et_path.getText().toString().trim();if (TextUtils.isEmpty(path)){Toast.makeText(this,"图片路径不能为空",0).show();}else {//子线程请求网络,Android 4.0以后访问网络不能放在子线程中new Thread(){private HttpURLConnection conn;private Bitmap bitmap;public void run(){//链接服务器get请求,获取图片try{//创建URL对象URL url =new URL(path);conn=(HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");conn.setConnectTimeout(5000);conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatib;MSIE 6.0;Window NT 5.1;"+"SV1;" +".NET4.0C;.NET4.0E;NET CLK 2.0.50727;"+".NET CLR 3.0..4506.2152;.NET CLR 3.5.30729; Shuame )");int code=conn.getResponseCode();if(code==200){InputStream is=conn.getInputStream();bitmap= BitmapFactory.decodeStream(is);Message msg=new Message();msg.what=CHANGE_UI;msg.obj=bitmap;handler.sendMessage(msg);}else {Message msg=new Message();msg.what=ERROR;handler.sendMessage(msg);}}catch (Exception e){e.printStackTrace();Message msg=new Message();msg.what=ERROR;}}}.start();}}
}

三、添加权限:由于网络图片浏览器需要请求网络,因此需要在清单文件中配置相应的权限,具体操作如下图所示:

四、运行浏览图片 ,结果图如下:

安卓案例——网络图片浏览器相关推荐

  1. Android(java)学习笔记144:网络图片浏览器的实现(ANR)

    1.我们在Android下,实现使用http协议进行网络通信,请求网络数据.这里是获取网络上的图片信息,让它可以显示在手机上: 但是我们这个手机连接网络是很费时间,如果我们在主线程(UI线程)中写这个 ...

  2. Android笔记 消息机制handler+http之 网络图片浏览器demo

    在Android中,只有主线程(UI线程)才能修改界面,包括Toast显示,改变Imageview中的图片等操作必须通过消息机制通知主线程修改界面 如不采用handler消息机制极有可能出现如下错误 ...

  3. 强制 html5 播放,关于HTML5 video标签在安卓版微信浏览器内被强制全屏播放的问题...

    最近在一个H5项目中,碰到了传说中的video标签在安卓版微信浏览器内被强制全屏播放问题.原计划在视频播放完毕后,页面发生video的ended事件时,应该显示分享和进入转化页的按钮,如图: 然而在很 ...

  4. html百度转到顶部 fixed,科技常识:完美解决安卓端百度浏览器屏蔽fixed悬浮元素的问题...

    今天小编跟大家讲解下有关完美解决安卓端百度浏览器屏蔽fixed悬浮元素的问题 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关完美解决安卓端百度浏览器屏蔽fixed悬浮元素的问题 的相关资料 ...

  5. android多行文本框hint居中,在安卓等移动浏览器中placeholder中的文字不垂直居中问题...

    现在移动互联网的浪潮一波又一波,很多企业和个人都开始注重自己的移动互联网(当然很多是已经有了传统的PC端的东西),比如我们最近接的很多项目都是传统PC和移动端同步做的,这也说明了移动端在用户心目中的重 ...

  6. 安卓案例:利用SQLiteOpenHelper操作数据库及表

    安卓案例:利用SQLiteOpenHelper操作数据库及表 一.运行效果 二.涉及知识点 1.利用SQLiteOpenHelper类创建与升级数据库 这个类是一个抽象类,我们必须继承该类创建一个子类 ...

  7. 安卓案例:注册用户免启动时的广告页面

    安卓案例:注册用户免启动时的广告页面 非注册用户启动安卓应用时,会首先弹出一个广告页面,停留一分钟,然后关闭进入主界面.注册用户就可以免掉广告页面的骚扰.下面我们通过简单的案例来说明如何实现这样一个效 ...

  8. 安卓案例:表达式计算器

    安卓案例:表达式计算器 一.运行效果 如果没有输入表达式或输入表达式有误,会弹出警告对话框:

  9. 安卓案例:View动画——弹球碰壁

    安卓案例:View动画--弹球碰壁 一.运行效果

最新文章

  1. matlab 几何概率
  2. ibatis mybatis传入List参数
  3. 日常生活 -- 开博二周年
  4. 微信公众号自动回复 node
  5. 【图文详解】Mysql8.0安装教程
  6. Mac 环境变量配置
  7. NullPointerException : HiveAuthorizerImpl.checkPrivileges(HiveAuthorizerImpl.java:85)
  8. 基于非递归算法的汉诺塔游戏之Python实现
  9. 现代计算机网络发展为第几代,晶体管计算机是第几代_个人计算机使用的电子元器件_计算机网络最突出的(6)...
  10. windows最好用的mp3格式转换软件推荐
  11. chrome插件开发基础以及如何防止劫持
  12. 使用Arduino实现一个简易倒车雷达
  13. 一些linux和OpenGL的笔记
  14. helm charts 使用
  15. EXCEL 小tips
  16. c语言里宏定义算变量嘛,C语言宏定义的一些总结
  17. Mysql 5.7.11压缩版安装及问题解决
  18. python数据分析与应用第五章实训 2_第五章实训(二)
  19. 华为方舟编译器开源官网正式上线:源代码已开放下载;中兴通讯与北京交通大学、中国移动北京公司签署 “5G战略合作框架协议”……...
  20. Vue3 探坑之旅3

热门文章

  1. 小米手机相册选取后的intent为空?
  2. MTALAB制作动图
  3. 【HTML】秒懂内联元素和块级元素的区别
  4. 阿里云、腾讯云挂了之后,我分析了这十家云巨头的SLA
  5. YAML 与 front-matter
  6. 个人职场经历(都是些吐槽的事),mysql调优方法
  7. Vue生命周期函数异步获取数据时的问题
  8. java做橡皮擦效果_基于canvas剪辑区域功能实现橡皮擦效果
  9. Lammps之漫谈自由能
  10. php重定向网页,php重定向网页