`
yaku2688
  • 浏览: 89971 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android网络操作

 
阅读更多

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网络操作”的核心概念、常用方法以及如何利用封装好的框架进行高效开发。 一、Android网络访问基础 在Android中,网络操作主要依赖于java.net和HttpURLConnection类库,但出于性能和易用性...

    android 网络操作 封装 直接调用

    一、Android网络操作基础 在Android中,网络操作主要涉及两种方式:HttpURLConnection和OkHttp。HttpURLConnection是Java标准库的一部分,而OkHttp是一个高效的网络库,广泛用于Android应用中。两者都可以用来发送...

    android 文件、网络、数据库、UI基本操作总结

    在Android开发中,掌握文件操作、网络通信、数据库管理和用户界面(UI)设计是至关重要的。以下是对这些关键知识点的详细说明: 1. **文件操作**: - Android中的文件操作主要包括读取和写入。`File`类是进行文件...

    Android学习体系.pdf

    - 阶段二:Android网络操作与流行框架,总共有24课时,涵盖网络操作与通信、高级控件、数据存储、流行框架的使用等内容。 - 阶段三:Android高级应用与Kotlin综合实战,总共有30课时,深入讲解Android高级应用、动画...

    android网络开发原理

    此外,Android有严格的网络访问策略,比如在主线程中直接进行网络操作会导致ANR(Application Not Responding)错误,因此网络操作通常应在工作线程或者IntentService中执行。为了提高用户体验,还可以使用AsyncTask...

    Android 网络类型及操作相关demo

    在Android开发中,网络操作是不可或缺的一部分,尤其是在构建与服务器交互的应用时。本Demo——"Android 网络类型及操作相关demo"专注于检测和管理设备的网络状态,特别是WiFi和移动数据。以下是对该Demo中涉及的...

    android登陆注册(json解析网络数据)demo

    在Android开发中,登录注册功能是每个应用的基本组成部分,而JSON作为轻量级的数据交换格式,经常被用于...通过分析和理解这个示例,开发者可以深化对Android网络操作和JSON处理的理解,为今后的项目开发打下坚实基础。

    精通android网络开发

    "精通Android网络开发"意味着你需要深入理解网络通信的基本原理,并能熟练运用各种技术来实现Android应用与服务器之间的数据交换。以下是一些关于Android网络开发的重要知识点: 1. **HTTP/HTTPS协议**:Android...

    Android操作系统概述

    Android操作系统是Google公司开发的一款基于Linux内核的开源移动操作系统,自2007年发布以来,已经成为全球最受欢迎的智能手机和平板电脑操作系统之一。Android以其开放源代码特性,吸引了众多开发者和制造商,形成...

    android网络编程基础

    本节将深入探讨Android网络编程的基础知识,主要围绕Java网络编程这一核心概念展开。 首先,理解Android网络编程的基础概念至关重要。在Android中,网络操作通常在后台线程中执行,以避免阻塞主线程导致应用无响应...

    android执行网络操作

    一、Android网络访问基础 在Android中,网络访问主要依赖于java.net和android.net两大类库。java.net库提供了Socket和HttpURLConnection等基础网络通信接口,而android.net则包含了更多的Android特有网络功能,如Wi-...

    Android 网络调试助手

    2. 运行应用:启动待调试的应用,执行网络操作。 3. 监控调试:在调试助手中查看捕获的网络请求,分析问题。 4. 修改与重发:若需要,可修改请求参数并重新发送,观察不同参数下的服务器响应。 5. 结束调试:完成...

    android网络测速app源代码

    7. **多线程处理**:为了保证用户界面的流畅性,网络测速通常在后台线程中进行,防止因长时间网络操作导致UI阻塞。Android提供了AsyncTask、Handler或Thread/Runnable等机制来实现后台任务。 8. **数据可视化**:...

    android网络开发技术实战详解电子书

    Android的异步处理和后台任务对于网络操作尤为重要,以避免UI线程阻塞。因此,书中会详细讨论AsyncTask、IntentService、Handler和Looper机制,以及现代的RxJava和Retrofit等库的使用,帮助开发者实现高效、流畅的...

    ftp jar Android

    总的来说,"ftp jar Android"涉及的关键知识点包括:Android应用开发,FTP协议,Apache Commons Net库,FTPClient类,Android网络操作,文件I/O,以及异步任务处理。在实际开发中,需要考虑网络连接的稳定性、安全性...

    高效android http网络模块

    Android系统对网络操作有限制,例如只能在主线程之外进行网络请求,否则会触发“NetworkOnMainThreadException”。因此,开发者需要在子线程或者使用异步任务来处理网络请求,以避免阻塞UI。 `高效`意味着我们需要...

    Android 网络权限配置

    没有这个权限,应用无法进行HTTP或HTTPS请求,包括但不限于API调用、网页加载等网络操作。 2. `ACCESS_NETWORK_STATE`权限: 此权限允许应用获取当前的网络状态,如是否连接到WiFi或移动数据。这对于判断网络是否...

    GoogleIO2013 Android快速联网框架Volley

    传统的Android网络操作通常需要处理各种状态,比如HTTP连接的打开和关闭、网络状态的监听、数据的解析等,这些工作很容易分散开发者的注意力,造成代码冗长且容易出错。Volley通过提供简洁的API,使开发者能够更专注...

    android网络加载显示进度条

    "android网络加载显示进度条"这一主题主要涉及两个关键概念:ProgressDialog和多线程(Thread)。下面将详细介绍这两个知识点。 首先,ProgressDialog是Android系统提供的一个对话框组件,它允许开发者创建一个带有...

Global site tag (gtag.js) - Google Analytics