Android访问网络操作。
首先在AndroidManifest.xml文件中添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
业务类ImageServer.java:
根据指定的网络图片地址获取二进制数据
package com.yaku.service;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class ImageServer {
public static byte[] getImage(String path) throws Exception {
//URL url = new URL("http://www.baidu.com/img/baidu_sylogo1.gif");
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
InputStream inStream = conn.getInputStream();//通过输入流获取图片数据
//获取网页上的数据,如HTML代码
//byte[] data = readInputStream(inStream);//得到html的二进制数据
//String html = new String(data, "gb2312");
return readInputStream(inStream);//得到图片的二进制数据
}
/**
* 从输入流中获取数据
* @param inStream 输入流
* @throws Exception
*/
public static byte[] readInputStream(InputStream inStream) throws Exception{
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while( (len=inStream.read(buffer)) != -1 ){
outStream.write(buffer, 0, len);
}
inStream.close();
return outStream.toByteArray();
}
}
将图片显示在手机屏幕上HttpImageActivity.java:
package com.yaku.http;
import com.yaku.service.ImageServer;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
public class HttpImageActivity extends Activity {
private EditText path;
private ImageView image;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
path = (EditText) this.findViewById(R.id.url);
image = (ImageView) this.findViewById(R.id.image);
Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String urlPath = path.getText().toString();
try {
byte[] data = ImageServer.getImage(urlPath);
//生成位图
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
image.setImageBitmap(bitmap);//显示图片
} catch (Exception e) {
Toast.makeText(HttpImageActivity.this, R.string.error, 1).show();
}
}
});
}
}
分享到:
相关推荐
android网络操作,简单易用,已经封装,直接调用即可达到访问服务器目的
android 网络操作 已经进行封装 直接调用,非常方便
网络的基本操作 及webview的相关知识代码文档等
NULL 博文链接:https://lukang.iteye.com/blog/626148
Android进行网络操作的代码例子。用于演示获取网络连接信息、连接wifi、管理个人热点等功能。其中个人热点管理除了开关热点、设置账号密码等基本操作外,还实现了检测客户端设备是否正常连上的功能。对于连接热点的...
一个简单的Android网络下载器,支持多任务下载、多界面管理、断点等常用操作
1.2.5网络操作系统 1.2.6分布式操作系统 1.2.7嵌入式操作系统 1.3移动操作系统 1.3.1移动设备的特征 1.3.2主要的移动操作系统 1.3.3移动操作系统的应用和发展 1.4Android移动操作系统概述 1.4.1Android历史...
罗列了android常用两种检测网络方法,在工作线程中定时执行检测操作
该Demo的主要功能 1.判断手机网络状态及类型 2.wifi连接时,获得路由器相关信息 3、wifi设置的常见操作(如代码实现打开关闭wifi,扫描周边wifi等)
Android Volley网络操作jar包
主要介绍了Android编程实现wifi扫描及连接的方法,涉及Android网络操作扫描、查找、连接、线程等相关操作技巧,需要的朋友可以参考下
从网络异步加载图片资源,主线程执行ui操作,工作线程执行耗时操作。并可对图片触摸放大缩小。
Android中的网络数据下载及JSON的操作,包括了9个Android JSON方面操作的例子: GetAPictureFromInternet GetNewsInJSONFromInternet MultipleThreadContinuableDownloader 多线程下载 ServerForJSON ...
首先应想到若要从网络资源中获取图片,就需要通过流操作,于是就想到如何创建流。 第一步:指定图片资源的URL 第二步:通过RUL获取一个connection 第三步:通过连接获取出入流 第四步:利用BitmapFactory....
在Android中,可供选择的存储方式有SharedPreferences、文件存储、SQLite数据库方式、内容提供器(Content provider)和网络。一.SharedPreferences方式二.文件存储方式三.SQLite数据库方式四.内容提供器(Content ...
一个基于Httpclient的网络异步操作框架。数据请求被封装在一个回调形式的方法中。
A safety client by Https for android, (Android网络框架,基于Retrofit和RxJava打造的链式网络库, 支持okhttp的调用风格,又兼容Retrofit API,并支持rxJava链式操作)
Android中的网络数据下载及JSON的操作
这个项目已经很老了,其实是从 Android 4.4.4 的系统 Settings 中 copy 出来的。 其实原理都是编译运行系统 ...Android 操作以太网的项目,提供了监听网线插拔和以太网开关,设置以太网静态IP、网关、子网掩码、dns等。
Android 4.0 网络编程详解代码(共7个项目)