展会信息港展会大全

安卓软件开发教程网络操作获取网页上的数据
来源:互联网   发布日期:2015-09-28 16:21:34   浏览:2676次  

导读:首先在AndroidManifest.xml文件中添加网络权限:uses-permission android:name=android.permission.INTERNET/业务类ImageServer.java:根据指定的网络图片地址获取二进制数据。package com.yaku.service; ......

首先在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 网络 操作

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港