Android网络操作
16lz
2021-12-04
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() {@Overridepublic 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();}}}); }}
更多相关文章
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
- Android显示图片自适应(控件+网页)
- android存储空间的检测
- Android学习笔记(九)之Android(安卓)获取正在运行的Activity
- android 获取汉字拼音
- android ImageView scaleType属性
- EditText实时判断输入字符数
- android imageView 自适应大小
- Android控件笔记——在界面中显示图片