在实际开发中,绝大多数App都需要与服务器进行数据交互,也就是访问网络,此时就需要HttpURLconnection对象。HttpURLconnection是一个标准的Java类。

//创建
URL url = new URL("http://localhost:8080/xxx.do");
HttpURLConnection conn= (HttpURLConnection) rulConnection;
//设置参数
Conn.setRequestMethod("POST");    // 设定请求的方法为"POST",默认是GET    // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在
// http正文内,因此需要设为true, 默认情况下是false;
Conn.setDoOutput(true);    Conn.setConnectionTimeout(5000);//设置超时时间
InputStream is=conn.getInputStream();//设置服务器返回的输入流Try{
//读取流信息 获得服务器返回的数据
} catch(Exception e){}
Conn.disconnect();//关闭http连接

市面上绝大多数Android应用如新浪微博,网易新闻等都是网络应用,都需要与服务器进行通信。接下来通过网络图片浏览器案例演示手机端与服务器进行通信的过程。

1.创建布局文件activity_main.xml

<LinearLayout 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"android:orientation="vertical"tools:context=".MainActivity" ><ImageViewandroid:id="@+id/iv"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1" /><EditTextandroid:id="@+id/et_path"android:layout_width="fill_parent"android:layout_height="wrap_content"android:hint="请输入图片路径"android:text="http://b.hiphotos.baidu.com/image/w%3D310/sign=a439f5b24510b912bfc1f0fff3fdfcb5/83025aafa40f4bfb92c52c5d014f78f0f73618a5.jpg"android:maxLines="1" /><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:onClick="click"android:text="浏览" /></LinearLayout>

2.编写页面交互代码 MainActivity

package cn.edu.bzu.imageviewdemo;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 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, "显示图片错误", Toast.LENGTH_SHORT).show();}};};protected 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, "图片路径不能为空", Toast.LENGTH_SHORT).show();} else {//子线程请求网络,Android4.0以后访问网络不能放在主线程中new Thread() {public void run() {// 连接服务器 get 请求 获取图片.try {URL url = new URL(path);       //创建URL对象// 根据url 发送 http的请求.HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 设置请求的方式conn.setRequestMethod("GET");//设置超时时间conn.setConnectTimeout(5000);// 得到服务器返回的响应码int code = conn.getResponseCode();//请求网络成功后返回码是200if (code == 200) {//获取输入流InputStream is = conn.getInputStream();//将流转换成Bitmap对象Bitmap bitmap = BitmapFactory.decodeStream(is);//iv.setImageBitmap(bitmap);//TODO: 告诉主线程一个消息:帮我更改界面。内容:bitmapMessage 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);}};}.start();}}}

3.添加权限

由于网络图片浏览器需要请求网络,因此需要在清单文件中配置权限。

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

4.运行程序

    

Android--网络图片浏览器相关推荐

  1. Android 网络图片浏览器( ImageView )【网络访问、线程、handler(消息处理器)、Internet权限、Get请求、输入流转图片】

    源码 [工程文件]:https://gitee.com/lwx001/ImageView 目   录 运行截图 activity_main.xml MainActivity.java AndroidM ...

  2. android 图片浏览器 布局,Android实现网络图片浏览器

    本文实例为大家分享了Android网络图片浏览器的制作过程,供大家参考,具体内容如下 一.创建一个"网络图片浏览器的应用程序",并设计用户交互界面,"网络图片浏览器&qu ...

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

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

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

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

  5. 安卓案例——网络图片浏览器

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

  6. 关闭Android/iPhone浏览器自动识别数字为电话号码

    iPhone上的Safari(还有些webkit android手机浏览器)会自动对看起来像是电话号码的数字串(包括已经加入连字符或括号格式化过的)添加电话链接,点击之后会询问用户是否想要拨打该号码. ...

  7. android 使用浏览器打开指定页面

    今天,简单讲讲android里如何使用浏览器打开指定的网页. 之前,我做一个功能时,服务器返回一个url地址,我需要跳转到指定网页.却发现自己不知道怎么做,在网上搜索了资料,最终是解决了问题.这里记录 ...

  8. Android通过浏览器打开App并传递参数

    Android通过浏览器打开App并传递参数; Data的Uri的规则: scheme://host:port/path or pathPrefix or pathPattern 打开App传递参数U ...

  9. yandex 浏览器 linux,细致比拼 六大Android手机浏览器实测

    12月1日 从20世纪八九十年代的第一代模拟的手机电话(简称手机),发展迄今大家所熟悉的手机已经不只是用来简单的通话,手机更成为与国际互联网等多媒体通信结合的新一代移动通信系统,而手机浏览器也逐渐成为 ...

  10. 手把手教你修改Firefox的User-Agent伪装Android微信浏览器

    增加配置结点:general.useragent.override 值(Android微信浏览器):Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5 ...

最新文章

  1. PS常用快捷键就这些了,记住绘图事半功倍
  2. IOC的理解,整合AOP,解耦对Service层和Dal层的依赖
  3. Spring Cloud Alibaba:@SentinelResource注解的使用
  4. mysql 层级 统计_MySQL系列(7)
  5. Leet Code OJ 223. Rectangle Area [Difficulty: Easy]
  6. having vs where
  7. C#操作XML之——读取XML文件
  8. 收回扣、打麻将、开赌场?比亚迪自曝多名员工贪污腐败
  9. 多线程编程学习笔记——线程池(二)
  10. 推荐一本学javascript的书籍---经典
  11. 大学使用python 编辑器_Python数据分析|最多人用的代码编辑器推荐
  12. 使用chrome console检查css selector/xpath的有效性|百度云盘如何获取文件库中的目录文字
  13. 基于北斗观测值的智能手机GNSS定位研究
  14. linux Ubuntu使用Eclipse菜单栏不见了解决方法
  15. html制作打飞机的游戏,JavaScript 小型打飞机游戏实现原理说明
  16. 巨型机是一种什么的超级计算机,把计算机分为巨型机、大中型机按照什么分的...
  17. PHP上传用户头像及头像的缩略图
  18. 运用JAVA基础阶段知识,模拟双色球机选抽奖过程
  19. oracle hint 强制索引
  20. 苏州市RFID客运车辆资产管理系统:RFID防盗资产管理-新导智能

热门文章

  1. 安装conda环境出现bug
  2. 《Kotlin for android developers》中文版翻译
  3. SQL Server Management Studio 18弹出界面却无法打开
  4. javascript 获取URL参数
  5. educoderpython入门之元组与字典_python元组与字典
  6. HTTP数据请求的方式:fetch与ajax(XMLHttpRequest)与axios
  7. LWN:5.18 开发周期数据分析!
  8. 【搞机】苹果6Plus绕过ID
  9. 全球与中国智慧消防市场深度研究分析报告
  10. 易语言excel表读写操作