`
yaku2688
  • 浏览: 89055 次
  • 性别: 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();
				}
			}
		});
    }
}

  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics